1 | #!/usr/bin/env node
|
2 | 'use strict';
|
3 |
|
4 | const Promise = require('bluebird');
|
5 | const reporter = require('./lib/reporter');
|
6 | const utils = require('./lib/utils');
|
7 | const cli = require('./lib/cli');
|
8 | const pkg = require('./package');
|
9 | const co = Promise.coroutine;
|
10 |
|
11 | co(function* () {
|
12 |
|
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 |
|
36 | taskr.emit('task_run', taskr.file);
|
37 |
|
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 | });
|