UNPKG

@nodeswork/nam

Version:

Applet manager for Nodeswork containers.

63 lines (61 loc) 2.22 kB
"use strict"; 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