grinder

Last updated:

0 purchases

grinder Image
grinder Images
Add to Cart

Description:

grinder

Dart workflows, automated.

Grinder consists of a library to define project tasks (e.g. test, build,
doc) and a command-line tool to run them.
Getting Started #
To start using grinder, add it to your
dev_dependencies.
Defining Tasks #
Tasks are defined entirely by Dart code allowing you to take advantage of
the whole Dart ecosystem to write and debug them. Task definitions reside
in a tool/grind.dart script. To create a simple grinder script, run:
pub run grinder:init
copied to clipboard
In general, grinder scripts look something like this:
import 'package:grinder/grinder.dart';

main(args) => grind(args);

@DefaultTask('Build the project.')
build() {
log("Building...");
}

@Task('Test stuff.')
@Depends(build)
test() {
new PubApp.local('test').run([]);
}

@Task('Generate docs.')
doc() {
log("Generating docs...");
}

@Task('Deploy built app.')
@Depends(build, test, doc)
deploy() {
...
}
copied to clipboard
Any task dependencies (see @Depends above), are run before the dependent task.
Grinder contains a variety of convenience APIs for common task definitions, such
as PubApp referenced above. See the
API Documentation for
full details.
Running Tasks #
First install the grind executable:
pub global activate grinder
copied to clipboard
then use it to run desired tasks:
grind test
grind build doc
copied to clipboard
or to run a default task (see @DefaultTask above):
grind
copied to clipboard
or to display a list of available tasks and their dependencies:
grind -h
copied to clipboard
You can also bypass installing grind and instead use pub run grinder.
Passing parameters to tasks #
In order to pass parameters to tasks from the command-line, you query the
TaskArgs instance for your task invocation. For example:
grind build --release --mode=topaz
and:
@Task()
build() {
TaskArgs args = context.invocation.arguments;
bool isRelease = args.getFlag('release'); // will be set to true
String mode = args.getOption('mode'); // will be set to topaz

...
}
copied to clipboard
would pass the flag release and the option mode to the build task.
You can pass flags and options to multiple tasks. The following command-line
would pass separate flags and options to two different tasks:
grind build --release generate-docs --header=small
Disclaimer #
This is not an official Google product.
Publishing automation #
For information about our publishing automation and release process, see
https://github.com/dart-lang/ecosystem/wiki/Publishing-automation.

License:

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.