nyx_server
Version:
Node内容发布
99 lines (84 loc) • 2.31 kB
JavaScript
#!/usr/bin/env node
/* global global */
/* global __dirname */
/* global process */
var log4js = require('log4js');
var help = require('../optimist/help');
var path = require("path");
var updateNotifier = require('update-notifier');
var ConnectionPools = require("../db/ConnectionPools");
var pools = new ConnectionPools(500);
pools.start();
global.pools = pools;
pools.initProject({
name : "nyx",
basePath : path.join(__dirname , "..")
})
var paths = require('../core/utils/paths');
var defaultConfig = require("../config/default-config"); //系统默认配置
global.nxyConfig = {
isDev : defaultConfig.isDev,
isDebug : defaultConfig.isDebug,
workDir : defaultConfig.workDir,
projects_cache_path : paths.projects_cache,
chips_cache_path : paths.chips_cache,
ejs_delimiter : "?",
noeditAttr : "notedit",
nodeidAttr : "nodeid"
}
try {
require('fs').mkdirSync('./logs');
} catch (e) {
if (e.code != 'EEXIST') {
console.error("Could not set up logs directory, error was: ", e);
process.exit(1);
}
}
log4js.configure(__dirname+'/../log4js_configuration.js' , {}); //log配置
var args = process.argv.slice(2);
// args = ['start', '--help'];
var commandName = args.shift();
if(commandName === '--version'){
var packageInfo = require("../package.json");
console.log(packageInfo.version);
process.exit();
}
if(commandName === 'help' || commandName === '--help' || commandName === '-h'){
showhelp();
process.exit();
}
processCommand(commandName);
function processCommand(commandName){
try{
var commandExec = require("./"+commandName);
var ret = commandExec.execute()
if(ret && ret.finally){
ret.finally(function(){
pools.stop();
process.exit(1);
})
}
}catch(err){
console.log(err.stack);
console.log("command '"+commandName+"' is not exist");
pools.start();
process.exit();
}
}
/**
* 显示帮助
*/
function showhelp(){
var commands = require('.');
help.summary(commands);
}
var pkg = require(path.join(__dirname, '..', 'package.json'));
var notifier = updateNotifier({
packageName: pkg.name,
packageVersion: pkg.version
});
// Notify using the built-in convenience method
notifier.notify();
if(notifier.update){
console.log(notifier.update);
}