1 | #!/usr/bin/env node
|
2 | 'use strict';
|
3 |
|
4 | var fs = require('fs');
|
5 | var Path = require('path');
|
6 | var fileDirUtils = require('../lib/fileDirUtils');
|
7 | var version = require('../package.json').version
|
8 |
|
9 | var nopt = require('nopt');
|
10 | var spawn = require('child_process').spawn;
|
11 |
|
12 | /*
|
13 | * Step1 : handle the command argv
|
14 | */
|
15 | var argv = process.argv;
|
16 |
|
17 | var knownOpts = {
|
18 | "input": String,
|
19 | "output": String,
|
20 | "help": Boolean,
|
21 | "version": String,
|
22 | };
|
23 |
|
24 | var shortHands = {
|
25 | "i": ["--input"],
|
26 | "o": ["--output"],
|
27 | "h": ["--help"],
|
28 | "v": ["--version"],
|
29 | };
|
30 |
|
31 | var getHelpInfo = function () {
|
32 | return [
|
33 | ' Usage: buildStyle [-i input]',
|
34 | ' [-o output]',
|
35 | ' [-h help]',
|
36 | '',
|
37 | ' Options:',
|
38 | '',
|
39 | ' -i | --input [compulsory] input path',
|
40 | ' -o | --output [compulsory] output path',
|
41 | ' -h | --help help information',
|
42 | ' -v | --version check version'
|
43 | ].join('\n');
|
44 | };
|
45 |
|
46 | var parsed = nopt( knownOpts, shortHands, argv );
|
47 | if(parsed.version == ''){
|
48 | console.log(version)
|
49 | return
|
50 | }
|
51 | if ( parsed.help || !parsed.input || !parsed.output ) {
|
52 | console.log( getHelpInfo() );
|
53 | return;
|
54 | }
|
55 |
|
56 | var cwd = process.cwd();
|
57 | var inputDir = Path.resolve( cwd, parsed.input );
|
58 | var outputDir = Path.resolve( cwd, parsed.output );
|
59 |
|
60 | // var tmpDir = Path.join(__dirname, '.build-tmp');
|
61 |
|
62 | /*
|
63 | * Step2 : execute gulp
|
64 | */
|
65 | if ( fs.existsSync( outputDir ) ) {
|
66 | console.log( outputDir + ' already exists, now removing ...' );
|
67 | fileDirUtils.rmDir( outputDir );
|
68 | }
|
69 |
|
70 | var modulesBase = Path.join(__dirname, '../node_modules');
|
71 | var gulpFile = Path.join(__dirname, '../config-files/gulpfile.js');
|
72 | var buildTask = spawn( 'node', [ modulesBase + '/gulp/bin/gulp', '--inputdir', inputDir, '--outdir', outputDir, '--gulpfile', gulpFile ] );
|
73 |
|
74 | buildTask.stdout.on('data', function (data) {
|
75 | data = data.slice( 0, data.length - 1 );
|
76 | console.log( data.toString() );
|
77 | });
|
78 |
|
79 | buildTask.stderr.on('data', function (data) {
|
80 | console.log( data.toString() );
|
81 | });
|
82 |
|
83 | buildTask.on('close', function (code) {
|
84 | if ( code !== 0 ) {
|
85 | console.error( 'build error : child process exited with code ' + code );
|
86 | } else {
|
87 | console.log( 'gulp compile finished' )
|
88 | }
|
89 | }); |
\ | No newline at end of file |