UNPKG

913 BJavaScriptView Raw
1#!/usr/bin/env node
2'use strict';
3
4const Promise = require('bluebird');
5const reporter = require('./lib/reporter');
6const utils = require('./lib/utils');
7const cli = require('./lib/cli');
8const pkg = require('./package');
9const co = Promise.coroutine;
10
11co(function* () {
12 // get command options
13 const o = cli.options();
14 const t = o.tasks.length ? o.tasks : ['default'];
15
16 if (o.help) {
17 return cli.help();
18 }
19
20 if (o.version) {
21 return cli.version(pkg);
22 }
23
24 const taskr = yield cli.spawn(o.cwd);
25 reporter.call(taskr);
26
27 if (!taskr.file) {
28 return taskr.emit('taskfile_not_found');
29 }
30
31 if (o.list) {
32 return cli.list(taskr.tasks, o.list === 'bare');
33 }
34
35 // announce start
36 taskr.emit('task_run', taskr.file);
37 // run `tasks` in `mode`
38 taskr[o.mode](t);
39
40})().catch(err => {
41 if (err.type === 'cli') {
42 utils.error(`CLI Error! ${err.message}`);
43 } else {
44 console.error(utils.trace(err.stack));
45 }
46});