UNPKG

nyx_server

Version:

Node内容发布

99 lines (84 loc) 2.31 kB
#!/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); }