UNPKG

nei

Version:
88 lines (82 loc) 2.43 kB
#!/usr/bin/env node 'use strict'; var util = require('../lib/util/util'); util.checkNodeVersion(); var main = require('../main'); let logger = require('../lib/util/logger'); var Args = require('../lib/util/args'); /** * 处理args中的数组情况 * @param config */ function formatArrayArgs(config) { ["ids", "tags", "add"].forEach(key => { if (config[key]) { try { if(key == "tags"){ config[key] = config[key].split(","); }else { config[key] = JSON.parse(`[${config[key]}]`); } } catch (e) { logger.log("error",{message:`输入${key}有误,请确定输入为数字,或以','分割的数字`}); process.exit(-1); // 直接退出进程 } } }); } var options = { package: require('../package.json'), message: require('./config.js'), exit: function (code) { if (typeof(code) === 'undefined') { code = 0; } process.exit(code); }, log: function (msg) { console.log(msg); }, setLogLevel: function (logLevel) {// 设置logger的显示级别,因为使用单例,共享logger对象 logger.logger.setLevel(logLevel); }, build: function (event) { var action = 'build'; var config = event.options || {}; formatArrayArgs(config); config = this.format(action, config); if (!config.key && !config.specKey) { this.log(`错误: 缺少项目的唯一标识 key, 请到 NEI 网站上的相应项目的"工具设置"中查看该 key 值`); this.show(action); } else { main.build(this, action, config); } }, update: function (event) { var action = 'update'; var config = event.options || {}; formatArrayArgs(config); config = this.format(action, config); main.update(this, action, config); }, server: function (event) { var action = 'server'; var config = event.options || {}; config = this.format(action, config); config.action = action; main.server(config); }, template: function (event) { var action = 'template'; var config = event.options || {}; var data = Object.assign({}, config); config = this.format(action, config, true); // 最后一个true表明需要使用默认参数填充 ["p", "o", "d","b", "w"].forEach((item)=>{ delete data[item]; }); main.template(config, data); } }; var args = new Args(options); // do command args.exec(process.argv.slice(2));