UNPKG

2.22 kBPlain TextView Raw
1#!/usr/bin/env node
2'use strict';
3
4var fs = require('fs');
5var Path = require('path');
6var fileDirUtils = require('../lib/fileDirUtils');
7var version = require('../package.json').version
8
9var nopt = require('nopt');
10var spawn = require('child_process').spawn;
11
12/*
13 * Step1 : handle the command argv
14 */
15var argv = process.argv;
16
17var knownOpts = {
18 "input": String,
19 "output": String,
20 "help": Boolean,
21 "version": String,
22};
23
24var shortHands = {
25 "i": ["--input"],
26 "o": ["--output"],
27 "h": ["--help"],
28 "v": ["--version"],
29};
30
31var 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
46var parsed = nopt( knownOpts, shortHands, argv );
47if(parsed.version == ''){
48 console.log(version)
49 return
50}
51if ( parsed.help || !parsed.input || !parsed.output ) {
52 console.log( getHelpInfo() );
53 return;
54}
55
56var cwd = process.cwd();
57var inputDir = Path.resolve( cwd, parsed.input );
58var outputDir = Path.resolve( cwd, parsed.output );
59
60// var tmpDir = Path.join(__dirname, '.build-tmp');
61
62/*
63 * Step2 : execute gulp
64 */
65if ( fs.existsSync( outputDir ) ) {
66 console.log( outputDir + ' already exists, now removing ...' );
67 fileDirUtils.rmDir( outputDir );
68}
69
70var modulesBase = Path.join(__dirname, '../node_modules');
71var gulpFile = Path.join(__dirname, '../config-files/gulpfile.js');
72var buildTask = spawn( 'node', [ modulesBase + '/gulp/bin/gulp', '--inputdir', inputDir, '--outdir', outputDir, '--gulpfile', gulpFile ] );
73
74buildTask.stdout.on('data', function (data) {
75 data = data.slice( 0, data.length - 1 );
76 console.log( data.toString() );
77});
78
79buildTask.stderr.on('data', function (data) {
80 console.log( data.toString() );
81});
82
83buildTask.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