Skip to content

Instantly share code, notes, and snippets.

@kasperpeulen
Last active August 29, 2015 14:25
Show Gist options
  • Select an option

  • Save kasperpeulen/6a35b3d87f61eef1bbd5 to your computer and use it in GitHub Desktop.

Select an option

Save kasperpeulen/6a35b3d87f61eef1bbd5 to your computer and use it in GitHub Desktop.
args:CommandRunner example
<!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'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment