diff --git a/app/cli.js b/app/cli.js index 6bd864af6ddf708a5a2d73f6f541b393b3926a8a..39d3c065914caf264761c3787ef4f33246b8d96e 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 33089792c286037357d989056dd9a22d0b9126c8..f449dc6fcdcb956b85aa20be178e473295a0ec07 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); }