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 |