UNPKG

nsolid-manager

Version:

A manager that sets up and runs N|Solid for you

72 lines (63 loc) 2.25 kB
/** * In-memory config store. */ const rc = require('rc') const yargs = require('yargs') const os = require('os') const path = require('path') module.exports = getConfig const DEFAULT_USAGE = `Start the N|Solid Console server Usage: $0 [options] `.trim() function getDefaults (defaultOverride) { return rc('nsolid-console', Object.assign({ hub: ['http://localhost:9000'], timeout: 15000, storage: path.join(os.tmpdir(), 'nsolid-console'), duration: 15, interval: 5000, port: process.env.PORT || 3000 }, defaultOverride)) } function getConfig (args, usage, defaultOverride) { const defaults = getDefaults(defaultOverride) const conf = yargs .usage(usage || DEFAULT_USAGE) .describe('duration', 'Maximum time to retain graph data in minutes') .default('duration', defaults.duration) .alias('d', 'duration') .nargs('duration', 1) .describe('interface', 'Networking interface HTTP server will listen on') .default('interface', '0.0.0.0') .nargs('interface', 1) .describe('interval', 'Frequency to poll N|Solid Hub in ms') .default('interval', defaults.interval) .alias('i', 'interval') .nargs('interval', 1) .describe('port', 'Port HTTP server will listen on') .default('port', defaults.port) .alias('p', 'port') .nargs('port', 1) .alias('r', 'record') .describe('storage', 'Location on disk for storing snapshots & profiles') .alias('s', 'storage') .default('storage', defaults.storage) .nargs('storage', 1) .boolean('flush') .describe('flush', 'Flush persisted data on startup.') .default('flush', false) .option('hub', { array: true }) .describe('hub', 'Space separated list of N|Solid Hub(s) (e.g., --hub=http://localhost:9000 http://domain.tld:9000)') .default('hub', defaults.hub) .describe('timeout', 'Maximum amount of time that a request to the N|Solid Hub can take in ms') .default('timeout', defaults.timeout) .nargs('timeout', 1) .help('help') .alias('help', 'h') .parse(args || process.argv) // ensure paths are resolved against cwd if (conf.storage) conf.storage = path.resolve(process.cwd(), conf.storage) if (conf.record) conf.record = path.resolve(process.cwd(), conf.record) return conf } getConfig.getDefaults = getDefaults