#!/usr/bin/env dart
// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

import 'dart:io';

import 'package:protoc_plugin/bazel.dart';
import 'package:protoc_plugin/protoc.dart';

void main() {
  final packages = <String, BazelPackage>{};
  CodeGenerator(stdin, stdout).generate(
    optionParsers: {bazelOptionId: BazelOptionParser(packages)},
    config: BazelOutputConfiguration(packages),
  );
}
