Index: tool/grind.dart |
diff --git a/tool/grind.dart b/tool/grind.dart |
index def9d86cbd6d65f98b5d24f165c161432e983e4c..71d4e9266e1324e7b723f145519972c192d45490 100644 |
--- a/tool/grind.dart |
+++ b/tool/grind.dart |
@@ -7,19 +7,31 @@ import 'dart:io'; |
import 'package:grinder/grinder.dart'; |
import 'package:unscripted/unscripted.dart'; |
+import 'doc.dart'; |
import 'rule.dart'; |
main([List<String> args]) { |
- addTask(new GrinderTask('rule', taskFunction: () { |
- String ruleName = context.invocation.positionals.first; |
- _generate(ruleName); |
- }, |
+ _addTask('rule', |
+ parser: (String name) => |
+ generateRule(name, outDir: Directory.current.path), |
description: 'Generate a lint rule stub.', |
- positionals: [new Positional(valueHelp: 'Name of rule to generate')])); |
+ valueHelp: 'Name of rule to generate.'); |
+ |
+ _addTask('docs', |
+ parser: (String outDir) => generateDocs(outDir), |
+ description: 'Generate lint rule docs.', |
+ valueHelp: 'Documentation `lints/` directory.'); |
grind(args); |
} |
-void _generate(String ruleName) { |
- generateRule(ruleName, outDir: Directory.current.path); |
+_addTask(String name, {String description, Parser parser, String valueHelp}) { |
+ addTask(new GrinderTask(name, taskFunction: () { |
+ String value = context.invocation.positionals.first; |
+ parser(value); |
+ }, |
+ description: description, |
+ positionals: [new Positional(valueHelp: valueHelp)])); |
} |
+ |
+typedef String Parser(String); |