fdm
Version:
基于gulp的1688前端集成化工具
116 lines (112 loc) • 3.06 kB
JavaScript
/**
* @author geng.cheng
* @description fdserver功能
*/
var spawn = require('win-spawn');
var commander = require('commander');
var helper = require('../utils/helper');
var path = require('path');
var colors = require('colors');
var fs = require('fs');
var config = helper.getConfig();
module.exports = {
help: function() {
console.log();
console.log('------后台运行,仅mac/linux支持-----');
console.log('启动FdServer');
console.log(' $', 'fdm server'.green, 'start');
console.log();
console.log('重启FdServer');
console.log(' $', 'fdm server'.green, 'restart');
console.log();
console.log('停止FdServer');
console.log(' $', 'fdm server'.green, 'stop');
console.log();
console.log('查看FdServer日志');
console.log(' $', 'fdm server'.green, 'log');
console.log();
console.log('--------------前台运行--------------');
console.log(' $', 'fdm server'.green, 'fstart');
console.log();
console.log();
console.log();
},
run: function(argv) {
commander.parse(process.argv);
var cmd = commander.args[1];
var baseModulePath = helper.baseModulePath();
var serverPath = baseModulePath+'/fdserver';
var serverPidFile = serverPath+'/run/app.pid';
if(!commander.args[1]){
this.help();
return;
}
switch(commander.args[1]){
case "start":
case "stop":
case "restart":
if(process.platform=="win32"){
console.log();
console.log('Sorry, 你的电脑不支持此命令,请使用fdm server fstart'.red);
console.log();
return;
}
serverRun('appctl');
break;
case "fstart":
if(fs.existsSync(serverPidFile)){
console.log();
console.log('fdserver已启动,请先运行fdm server stop'.red);
console.log();
return;
}else{
serverRun('fdserver');
}
break;
case "log":
if(fs.existsSync(serverPath+'/server.log')){
var log = fs.readFileSync(serverPath+'/server.log',{
encoding: 'utf8'
});
console.log(log.green);
}else{
console.log();
console.log('日志文件不存在...');
console.log();
}
break;
default: this.help();
}
function serverRun(bin){
var _bin = bin || "fstart";
var serverConfig = '';
if(config.fdserver && config.fdserver.config){
serverConfig = config.fdserver.config;
}else{
serverConfig = path.join(helper.getHomeDir(), 'neat.fdm','server.config.js');
serverError();
return;
}
if(fs.existsSync(serverConfig)){
spawn('node', [serverPath+'/bin/'+_bin,commander.args[1],'--cf', serverConfig], {
stdio: 'inherit'
});
}else{
serverError();
return;
}
}
function serverError(){
console.log([
'',
'fdserver配置文件路径不正确,请前往'.red+path.join(helper.getHomeDir(), 'neat.fdm', 'config.json')+'重新配置'.red,
'参考配置:',
'{',
' fdserver:{',
' config:"FdServer配置路径"',
' }',
'}',
].join('\n'));
}
}
};