From d965ac8bb00e443c6c9ce72674b72edcaa3e9ecc Mon Sep 17 00:00:00 2001 From: Jan Tuomi Date: Thu, 12 Jul 2018 15:23:25 +0300 Subject: Implement secrets --- cli.js | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) (limited to 'cli.js') diff --git a/cli.js b/cli.js index c14a8b8..04fca98 100755 --- a/cli.js +++ b/cli.js @@ -225,6 +225,59 @@ vorpal callback(); }); +vorpal + .command('secret set ', 'Set a secret key value pair.') + .action(async function (args, callback) { + try { + await checkConnection(mongoURL, this); + } catch (err) { + showMongoNotSetError(vorpal); + return callback(); + } + + if (!args.key || !args.value) { + this.log('Please provide both "key" and "value" arguments.'); + return callback(); + } + + try { + await models.secrets.update( + {key: args.key}, + {key: args.key, value: args.value}, + {upsert: true}); + this.log(chalk.green(`Secret "${args.key}" set successfully.`)); + } catch (err) { + this.log(chalk.red(`Failed to set secret ${args.key}!`)); + this.log(chalk.red(String(err))); + } + callback(); + }); + +vorpal + .command('secret remove ', 'Remove a secret key value pair.') + .action(async function (args, callback) { + try { + await checkConnection(mongoURL, this); + } catch (err) { + showMongoNotSetError(vorpal); + return callback(); + } + + if (!args.key) { + this.log('Please provide the "key" argument.'); + return callback(); + } + + try { + await models.secrets.remove({key: args.key}); + this.log(chalk.green(`Secret "${args.key}" removed successfully.`)); + } catch (err) { + this.log(chalk.red(`Failed to remove secret ${args.key}!`)); + this.log(chalk.red(String(err))); + } + callback(); + }); + vorpal .command('info', 'Show information about the session') .action(async function (args, callback) { -- cgit v1.3