UNPKG

yog2

Version:

Front End Integrated Solution for node express.

54 lines (50 loc) 1.57 kB
'use strict'; var util = require('util'); var spawn = require('child_process').spawn; var yogUtil = require('../lib/util.js'); exports.name = 'run'; exports.desc = 'run yog2 server with a simple daemon'; exports.register = function (commander) { commander .option('--fis3', 'fis3 mode', Boolean, false) .option('-n, --nodebug', 'run server without debug mode', Boolean, false) .option('-e, --env [env]', 'set YOG_ENV', String, 'dev') .action(function () { if (!yogUtil.checkProject()) { fis.log.error('current folder is not a valid yog project'.red); } var options = arguments[arguments.length - 1]; fis.log.throw = true; start(options); }); }; function start(options) { var server; var env = process.env; env.YOG_ENV = options.env || ''; if (options.nodebug) { server = spawn('node', ['app'], { env: env }); } else { var isWin = /^win/.test(process.platform); if (isWin) { server = spawn('npm.cmd', ['run', 'debug-win'], { env: env }); } else { server = spawn('npm', ['run', 'debug'], { env: env }); } } server.stdout.pipe(process.stdout); server.stderr.pipe(process.stderr); server.on('exit', function (code) { process.exit(); fis.log.warning(('yog2 server exit with code ' + code + ', restarting...').yellow); start(options); }); }