57 lines
1.5 KiB
TypeScript
57 lines
1.5 KiB
TypeScript
import "typings-global"
|
|
import colors = require("colors");
|
|
import path = require("path");
|
|
let q = require("q");
|
|
import readline = require("readline");
|
|
import childProcess = require("child_process");
|
|
let earlyChild;
|
|
|
|
let doAnimation:boolean = true;
|
|
let doText:boolean = false;
|
|
if(process.argv.indexOf("-v") != -1 || process.env.CI){
|
|
doAnimation = false;
|
|
} else if(process.argv.indexOf("-v") == -1){
|
|
doText = true;
|
|
}
|
|
|
|
// exports
|
|
export let start = function(moduleNameArg:string = "",loaderLengthArg:string = "10"){
|
|
if(doAnimation){
|
|
earlyChild = childProcess.fork(path.join(__dirname,"early.child.js"),[],{
|
|
env: {
|
|
moduleNameArg:moduleNameArg,
|
|
loaderLengthArg:loaderLengthArg,
|
|
CI: process.env.CI
|
|
}
|
|
});
|
|
} else if (doText) {
|
|
console.log("**** starting " + moduleNameArg.cyan + " ****");
|
|
}
|
|
};
|
|
|
|
export let stop = function(){
|
|
let done = q.defer();
|
|
if(doAnimation){
|
|
earlyChild.kill();
|
|
let rl = readline.createInterface({
|
|
input: process.stdin,
|
|
output: process.stdout
|
|
});
|
|
rl.write(null, {ctrl: true, name: 'u'});
|
|
rl.close();
|
|
earlyChild.on("close",function(){
|
|
let rl = readline.createInterface({
|
|
input: process.stdin,
|
|
output: process.stdout
|
|
});
|
|
rl.write(null, {ctrl: true, name: 'u'});
|
|
rl.close();
|
|
done.resolve();
|
|
})
|
|
} else {
|
|
done.resolve();
|
|
}
|
|
return done.promise;
|
|
};
|
|
|