Skip to content

lightweight, pluggable, a minimal task runner. using your npm-scripts.

Notifications You must be signed in to change notification settings

abigailjs/abigail

Repository files navigation

Abigail

Installation

npm install abigail --global
# or
yarn global add abigail

Usage

abigail is npm scripts emulator. You can succinctly describe the serial run-script and watch files.

abby test, lint, cover.
# +    0 ms @_@ use package.json.
# +    2 ms @_@ plugin enabled exit, log, launch, watch.
# +   23 ms @_@ task start test, lint, cover.
# +    0 ms @_@ task end test, lint, cover. exit code 0, 0, 0.
# +    0 ms @_@ cheers for good work.

In addition, makes it easy to change the settings using optional arguments.

abby test --no-log
# ...
> _

or specify package.json abigail field.

{
  "scripts": {
    "test": "mocha"
  },
  "abigail": {
    "plugins": {
      "watch": "{*,src/**/*.jsx,test/**/*.jsx}"
    }
  }
}
abby test

Serial run-script

If connecting the script name with a comma, run the script in serial.

abby cover, report.
# +   23 ms @_@ task start cover, report.
# +    3 ms @_@ script start cover.
# +  6.3  s @_@ script end cover. exit code 0.
# +    3 ms @_@ script start report.
# +  6.3  s @_@ script end report. exit code 0.
# +  5.1  s @_@ task end cover, report. exit code 0, 0.

Parallel run-script

Unless connecting the script name with a comma, run the script in parallel.

abby babel jade stylus
# ...
# +  133 ms @_@ script end stylus. exit code 0.
# +   87 ms @_@ script end jade. exit code 0.
# +   93 ms @_@ script end babel. exit code 0.
# +    0 ms @_@ task end babel, jade, stylus. exit code 0, 0, 0.

Run binary script

Cause abigail is know path of the local-installed, Can run the bin of node_modules/.bin/ instead of missing script.

abby flow
# ...
# +    8 ms @_@; Error: spawn flow ENOENT
# ...

npm install flow-bin
abby flow
# ...
# No errors!
# ...

See detail is to abigail-parse-plugin.

Continuous script

Can run scirpt continuously using the builtin --watch plugin.

abby test --watch
# ...
# +  1.0  s @_@ task end test. exit code 0.
# +    1 ms @_@ ... watch at src/**/*.js, test/**/*.js.

abby flow --watch '{src,test}/**/*.js'
# ...
# No errors!
# +  113 ms @_@ task end flow. exit code 0.
# +    0 ms @_@ ... watch at {src,test}/**/*.js.

See detail is to abigail-plugin-watch.

Glob run-script

If specify glob the script name, run the matching scripts in serial.

abby mytask:*
# ...
# +  133 ms @_@ script end mytask:stylus. exit code 0.
# +    0 ms @_@ script start mytask:jade. exit code 0.
# ...
# +   87 ms @_@ script end mytask:jade. exit code 0.
# +    0 ms @_@ script start mytask:babel. exit code 0.
# ...
# +   93 ms @_@ script end mytask:babel. exit code 0.
# +    0 ms @_@ task end mytask:babel, mytask:jade, mytask:stylus. exit code 0, 0, 0.

Bail run-script

If specify --launch bail, to strict serial run-script(not ignore the error and continues).

abby cover, report.
# +   23 ms @_@ task start cover, report.
# +    3 ms @_@ script start cover.
# ...
# +  6.3  s @_@ script end cover. exit code 1.
# +    3 ms @_@ script start report.
# ...
# +  198 ms @_@ script end report. exit code 0.
# +    2 ms @_@ task end cover, report. exit code 1, 0.

abby cover, report. --launch bail
# +   23 ms @_@ task start cover, report.
# +    3 ms @_@ script start cover.
# +  6.3  s @_@ script end cover. exit code 1.
# +  5.1  s @_@ task end cover. exit code 1.

Run with script

if specify --, it run the subsequent arguments as the end of the script.

abby cover:* -- --quiet
# +   23 ms @_@ task start cover:test. (with --quiet)
# ...

If the locally use, use the double quote("").

abby cant-quiet-task "cover:* -- --quiet"
# +   23 ms @_@ task start cant-quiet-task, cover:test.
# +    3 ms @_@ script start cant-quiet-task.
# +    3 ms @_@ script start cover:test. (with  --quiet)
# ...

See also

Inspired by

Development

Requirement global

  • NodeJS v5.7.0
  • Npm v3.7.1
git clone https://github.com/abigailjs/abigail
cd abigail
npm install

npm test

License

MIT

About

lightweight, pluggable, a minimal task runner. using your npm-scripts.

Resources

Stars

Watchers

Forks

Packages

No packages published