Dartのタスクランナーであるgrinderですが、タスクに引数を渡す方法がわかりませんでした。サンプルにも載っていないので、issueの中身を読み漁ったりした結果、とりあえず作れるということはわかりました。
main関数内で定義する
上記のリンクのコードを見る限り、main関数内で、add_task関数を使って定義していくのがよさそうです。
main(args) {
addTask(new GrinderTask('foo', taskFunction: () async {
var arg1 = context.invocation.options['arg1'];
var arg2 = context.invocation.options['arg2'];
// 何らかの処理を行う
}, options: [new Option(name: 'arg1'), new Option(name: 'arg2')]
));
grind(args);
}
こうすると、
grind foo --arg1=bar --arg2=baz
という形で引数を渡せるようになりました。
タスクの引数にアノテーションを使って定義できるようにする、みたいなissueがあるのですが、どうもまだ実装はされていないようです。残念。