#!/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() {
  var packages = <String, BazelPackage>{};
  new CodeGenerator(stdin, stdout).generate(
      optionParsers: {bazelOptionId: new BazelOptionParser(packages)},
      config: new BazelOutputConfiguration(packages));
}
