@nodeswork/nam
Version:
Applet manager for Nodeswork containers.
63 lines (61 loc) • 2.22 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const _ = require("underscore");
const fs = require("fs-extra");
const path = require("path");
const commander = require("commander");
const paths_1 = require("../paths");
const applet_manager_1 = require("../applet-manager");
const srcCommander = new commander.Command();
srcCommander
.option('--app-path [path]')
.option('--nodeswork-server [url]')
.option('--port [port]')
.option('--debug')
.option('--dev');
const DEFAULT_OPTIONS = {
appPath: paths_1.appPath,
nodesworkServer: 'http://api.nodeswork.com',
port: 28310,
};
commander
.option('--config [path]', 'load options from config path')
.option('--app-path [path]', 'override the app home path')
.option('--nodeswork-server [url]', 'nodeswork server')
.option('--port [port]', 'the port nam listens to, defaults to 28310', (x) => {
return parseInt(x);
})
.option('--debug', 'run in debug mode');
function createAppletManager() {
const options = extractCommonOptions();
return new applet_manager_1.AppletManager(options);
}
exports.createAppletManager = createAppletManager;
function extractCommonOptions() {
const extraParams = [['fakePath', 'fakeCmd']];
extraParams.push(loadFromPath('~/.namrc'));
if (commander.config) {
extraParams.push(loadFromPath(commander.config));
}
const params = _.flatten(extraParams);
srcCommander.parse(params);
const result = _.extend({}, DEFAULT_OPTIONS, _.pick(srcCommander, 'port', 'debug', 'nodesworkServer', 'appPath', 'dev'), _.pick(commander, 'port', 'debug', 'nodesworkServer', 'appPath', 'dev'));
return result;
}
exports.extractCommonOptions = extractCommonOptions;
function loadFromPath(filePath) {
let expandedPath;
if (filePath.startsWith('~')) {
expandedPath = path.join(process.env.HOME, filePath.slice(1));
}
else {
expandedPath = filePath;
}
if (fs.existsSync(expandedPath)) {
const params = fs.readFileSync(expandedPath).toString().split('\n')
.join(' ').split(' ');
return _.filter(params, (x) => x);
}
return [];
}
//# sourceMappingURL=cli-command.js.map