| OLD | NEW |
| (Empty) |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 library mojom.command.single; | |
| 6 | |
| 7 import 'dart:async'; | |
| 8 import 'dart:io'; | |
| 9 | |
| 10 import 'package:args/args.dart'; | |
| 11 import 'package:args/command_runner.dart'; | |
| 12 import 'package:mojom/src/commands/mojom_command.dart'; | |
| 13 import 'package:mojom/src/generate.dart'; | |
| 14 import 'package:mojom/src/utils.dart'; | |
| 15 import 'package:path/path.dart' as path; | |
| 16 | |
| 17 class SinglePackageCommand extends MojomCommand { | |
| 18 String get name => 'single'; | |
| 19 String get description => 'Generate bindings for a package.'; | |
| 20 String get invocation => 'mojom.dart single'; | |
| 21 | |
| 22 Directory _package; | |
| 23 | |
| 24 SinglePackageCommand() { | |
| 25 argParser.addOption('package', | |
| 26 abbr: 'p', | |
| 27 defaultsTo: Directory.current.path, | |
| 28 help: 'Path to a Dart package.'); | |
| 29 } | |
| 30 | |
| 31 run() async { | |
| 32 MojomCommand.setupLogging(); | |
| 33 await _validateArguments(); | |
| 34 | |
| 35 var mojomFinder = new MojomFinder(mojomRoot, _package.parent, skips); | |
| 36 List<PackageInfo> packageInfos = await mojomFinder.find(); | |
| 37 | |
| 38 var generator = new MojomGenerator(mojoSdk, | |
| 39 dryRun: dryRun, errorOnDuplicate: errorOnDuplicate); | |
| 40 for (PackageInfo info in packageInfos) { | |
| 41 await generator.generate(info); | |
| 42 } | |
| 43 } | |
| 44 | |
| 45 _validateArguments() async { | |
| 46 await validateArguments(); | |
| 47 | |
| 48 _package = new Directory(makeAbsolute(argResults['package'])); | |
| 49 log.info("package = $_package"); | |
| 50 if (!(await _package.exists())) { | |
| 51 throw new CommandLineError("The package $_package must exist"); | |
| 52 } | |
| 53 } | |
| 54 } | |
| OLD | NEW |