nsolid-manager
Version:
A manager that sets up and runs N|Solid for you
72 lines (63 loc) • 2.25 kB
JavaScript
/**
* 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