#args:CommandRunner example
Main library: args:CommandRunner
Main element: CommandRunner.addCommand
Gist: https://gist.github.com/kasperpeulen/6a35b3d87f61eef1bbd5
#args:CommandRunner example
Main library: args:CommandRunner
Main element: CommandRunner.addCommand
Gist: https://gist.github.com/kasperpeulen/6a35b3d87f61eef1bbd5
| <!doctype html> | |
| <html> | |
| <head> | |
| </head> | |
| <body> | |
| <script type="application/dart" src="main.dart"></script> | |
| </body> | |
| </html> |
| import 'dart:io'; | |
| import 'package:args/command_runner.dart'; | |
| import 'package:grinder/grinder.dart' as grind; | |
| main(List<String> arguments) { | |
| CommandRunner runner = new CommandRunner("dartnow", "Gist manager.") | |
| ..addCommand(new InstallCommand()); | |
| runner.run(arguments); | |
| } | |
| class InstallCommand extends Command { | |
| final name = "install"; | |
| final description = "Install a library to the gist."; | |
| String get package => argResults.rest[0].split(':')[0]; | |
| String get library => argResults.rest[0].split(':')[1]; | |
| InstallCommand(); | |
| void run() { | |
| if (package != 'dart') { | |
| grind.run('pub', arguments: 'global activate den'.split(' ')); | |
| grind.run('pub', arguments: 'global run den install $package'.split(' ')); | |
| grind.run('pub', arguments: 'get'.split(' ')); | |
| } | |
| addLibray(); | |
| String printMessage = package == 'dart' | |
| ? 'Added $package:$library to main.dart' | |
| : 'Added package:$package/$library.dart to main.dart'; | |
| print(printMessage); | |
| } | |
| void addLibray() { | |
| File mainFile = new File('main.dart'); | |
| String mainFileString = mainFile.readAsStringSync(); | |
| String importString = package == 'dart' | |
| ? "import '$package:$library';" | |
| : "import 'package:$package/$library.dart';"; | |
| mainFile.writeAsStringSync('$importString\n$mainFileString'); | |
| } | |
| } |
| name: args.CommandRunner_CommandRunner.addCommand | |
| description: | | |
| homepage: https://gist.github.com/kasperpeulen/6a35b3d87f61eef1bbd5 | |
| environment: | |
| sdk: '>=1.0.0 <2.0.0' | |
| dependencies: | |
| args: '>=0.13.2 <0.14.0' | |
| prompt: '>=0.1.7 <0.2.0' | |
| http: '>=0.11.3 <0.12.0' | |
| grinder: '>=0.7.2 <0.8.0' | |
| yaml: '>=2.1.3 <3.0.0' | |
| polymerjs: '>=0.1.2 <0.2.0' |