# grinder 0.6.4

Grinder - a task based, dependency aware build system.




## Installing
```
export PUB_HOSTED_URL=https://pub.mirror.p-hatan.ir
flutter pub add 'grinder:0.6.4'
```
Published: 2014-12-18T23:00:56.472410Z
Expected archive SHA-256: e1c3f8ee0a3cc2c6e22468bfab4257677692bedc37c6d3dd3e2a343ad8293705

Available in cache; verification: upstream_checksum
## Direct dependencies
- args: >=0.10.0 <0.13.0
- quiver: >=0.18.0 <0.21.0

## Package README (untrusted upstream documentation)
# Grinder for Dart

A task based, dependency aware build system.

[![Build Status](https://travis-ci.org/google/grinder.dart.svg?branch=master)](https://travis-ci.org/google/grinder.dart)

## Intro

Grinder is a library and tool to drive a command-line build.

Build files are entirely specified in Dart code. This allows you to write and
debug your build files with the same tools you use for the rest of your project
source.

## Getting Started

The build file for your application should reside at `tool/grind.dart`. A
typical Grinder build file may look something like this:

    void main([List<String> args]) {
      task('init', init);
      task('compile', compile, ['init']);
      task('deploy', deploy, ['compile']);
      task('docs', deploy, ['init']);
      task('all', null, ['deploy', 'docs']);

      startGrinder(args);
    }

    init(GrinderContext context) {
      context.log("I set things up");
    }

    ...

Tasks to run are specified on the command line. If a task has dependencies,
those dependent tasks are run before the specified task.

## Installing

To install, run:

    pub global activate grinder

## Command-line usage
    usage: dart grind.dart <options> target1 target2 ...

    valid options:
    -h, --help    show targets but don't build
    -d, --deps    display the dependencies of targets

or:

    pub run grind <args>

will run the `tool/grind.dart` script with the supplied arguments.

## API documentation

Documentation is available [here](http://www.dartdocs.org/documentation/grinder/latest).

## Disclaimer

This is not an official Google product.

## Changelog
# grinder.dart changes

## 0.6.4 (2014/12/18)
- clarify that users should put their build scripts in `tools/grind.dart`
- add a `getSdkDir` method

## 0.6.2 (2014/11/13)

- widen the version constraint on `quiver`

## 0.6.1 (2014/10/12)

- widen the version constraint on `args`

## 0.6.0 (2014/09/22)

The convenience API is now more terse:
- the `defineTask()` method has been renamed to `task()`
- instead of named parameters, the `task()` function now uses optional
  positional parameters

Added two new entrypoint files in `bin/`: `grind.dart` and `grinder.dart`. These
let you run grinder via:

    pub run grinder test

They look for a corresponding grinder script in the `tool` directory (`bin/grind.dart`
looks for `tool/grind.dart` and `bin/grinder.dart` looks for `tool/grinder.dart`).
If they find a corresponding script they run it in a new Dart VM process. This
means that projects will no longer have to have a `grind.sh` script in the root
of each project.

PubTool's build methods now take an optional `workingDirectory` argument.

Removed `runSdkBinary` and `runSdkBinaryAsync`, and they are no longer needed.
Use `runProcess` and `runProcessAsync` instead.

The methods on `PubTools` and `Dart2jsTools` are now static - you no longer need
to create an instance to use them. Also, `PubTools` was renamed to `Pub` and
`Dart2jsTools` was renamed to `Dart2js`. And a new utility class for
dartanalyzer - `Analyzer` - was created.

## 0.5.7 (2014/07/28)

- added `runProcessAsync()` and related async methods (such as
  `PubTools.buildAsync(...)`)
- removed duplicated stack traces when the build fails with exceptions
- throw an exception when running SDK binaries, and we are not able to locate
  the Dart SDK







 
