1 | #!/usr/bin/env node
|
2 |
|
3 | 'use strict';
|
4 | var jdists = require('./');
|
5 | var optimist = require('optimist');
|
6 | var mkdirp = require('mkdirp');
|
7 | var fs = require('fs');
|
8 | var path = require('path');
|
9 | var util = require('util');
|
10 | var colors = require('colors');
|
11 |
|
12 | var argv = optimist
|
13 | .usage('$0 input1.js [input2.js] -o output')
|
14 |
|
15 | .alias('h', 'help')
|
16 | .describe('h', 'show this help message and exit.')
|
17 | .string('h')
|
18 |
|
19 | .alias('o', 'output')
|
20 | .describe('o', 'output file.')
|
21 | .string('o')
|
22 |
|
23 | .alias('r', 'remove')
|
24 | .describe('r', 'remove block.')
|
25 | .default('r', 'remove,test')
|
26 | .string('r')
|
27 |
|
28 | .alias('t', 'trigger')
|
29 | .describe('t', 'trigger block.')
|
30 | .default('t', 'release')
|
31 | .string('t')
|
32 |
|
33 | .alias('config', 'c')
|
34 | .describe('c', 'path to config file.')
|
35 | .default('c', '.jdistsrc')
|
36 | .string('c')
|
37 |
|
38 | .alias('v', 'version')
|
39 | .describe('v', 'Print version number and exit.')
|
40 |
|
41 | .wrap(80)
|
42 | .argv;
|
43 |
|
44 | if (argv._.length < 1) {
|
45 | if (argv.version) {
|
46 | var json = require('./package.json');
|
47 | console.log(json.name + ' ' + json.version);
|
48 | return;
|
49 | }
|
50 |
|
51 | console.log(
|
52 | String(function () {
|
53 | |
54 |
|
55 |
|
56 |
|
57 |
|
58 |
|
59 |
|
60 |
|
61 |
|
62 |
|
63 |
|
64 |
|
65 |
|
66 | })
|
67 | .replace(/[^]*\/\*!?\s*|\s*\*\/[^]*/g, '')
|
68 | .replace(/#\{(.*?),(\w+)\}/g, function (all, text, color) {
|
69 | return colors[color](text);
|
70 | })
|
71 | );
|
72 | return;
|
73 | }
|
74 |
|
75 | var contents = [];
|
76 | var filenames = [];
|
77 | argv._.forEach(function (filename) {
|
78 | filenames.push(filename);
|
79 | contents.push(jdists.build(filename, argv));
|
80 | });
|
81 | var content = contents.join('\n');
|
82 | if (argv.output) {
|
83 | mkdirp.sync(path.dirname(argv.output));
|
84 | fs.writeFileSync(argv.output, content);
|
85 | console.log(colors.green(util.format('%j jdists output complete.', filenames)));
|
86 | }
|
87 | else {
|
88 | console.log(content);
|
89 | } |
\ | No newline at end of file |