From b6df78ae903731b7536a317e2e5fa0b8e5c3c11e Mon Sep 17 00:00:00 2001 From: cgeek <cem.moreau@gmail.com> Date: Sat, 7 Jan 2017 18:58:50 +0100 Subject: [PATCH] [enh] The module API now allows to add CLI options --- app/cli.js | 6 ++++++ index.js | 3 +++ 2 files changed, 9 insertions(+) diff --git a/app/cli.js b/app/cli.js index 6bd864af6..39d3c0659 100644 --- a/app/cli.js +++ b/app/cli.js @@ -768,6 +768,7 @@ function service(callback, nologs) { cbArgs.length--; cbArgs[cbArgs.length++] = server; cbArgs[cbArgs.length++] = server.conf; + cbArgs[cbArgs.length++] = program; onService && onService(server); return callback.apply(that, cbArgs); } catch (e) { @@ -796,6 +797,11 @@ module.exports.addCommand = (command, requirements, promiseCallback) => { .action(subCommand(service(promiseCallback))); }; +module.exports.addOption = (optFormat, optDesc, optParser) => { + program + .option(optFormat, optDesc, optParser); +}; + function needsToBeLaunchedByScript() { logger.error('This command must not be launched directly, using duniter.sh script'); return Promise.resolve(); diff --git a/index.js b/index.js index 33089792c..f449dc6fc 100644 --- a/index.js +++ b/index.js @@ -62,6 +62,9 @@ module.exports.statics = { const stack = { registerDependency: (requiredObject) => { + for (const opt of (requiredObject.duniter.cliOptions || [])) { + cli.addOption(opt.value, opt.desc, opt.parser); + } for (const command of (requiredObject.duniter.cli || [])) { cli.addCommand({ name: command.name, desc: command.desc }, command.requires, command.promiseCallback); } -- GitLab