refactor(bin): refactor check args in bin/manage_users
Signed-off-by: Erona <erona@loli.bz>
This commit is contained in:
parent
279213eb75
commit
7b12945c49
1 changed files with 17 additions and 14 deletions
|
@ -60,30 +60,33 @@ async function deleteUser(argv) {
|
|||
console.log("Deleted user "+argv["del"]+" ...");
|
||||
}
|
||||
|
||||
var options = {
|
||||
add: createUser,
|
||||
del: deleteUser,
|
||||
};
|
||||
|
||||
// Perform commandline-parsing
|
||||
var argv = minimist(process.argv.slice(2));
|
||||
|
||||
// Check for add/delete missing
|
||||
if (argv["add"] == undefined && argv["del"] == undefined) {
|
||||
console.log("You did not specify either --add or --del!");
|
||||
var keys = Object.keys(options);
|
||||
var opts = keys.filter((key) => argv[key] !== undefined);
|
||||
var action = opts[0];
|
||||
|
||||
// Check for options missing
|
||||
if (opts.length === 0) {
|
||||
console.log(`You did not specify either ${keys.map((key) => `--${key}`).join(' or ')}!`);
|
||||
console.log(usage);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
// Check if both are specified
|
||||
if (argv["add"] != undefined && argv["del"] != undefined) {
|
||||
console.log("You cannot add and delete at the same time!");
|
||||
if (opts.length > 1) {
|
||||
console.log(`You cannot ${action.join(' and ')} at the same time!`);
|
||||
console.log(usage);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
// Call respective processing functions
|
||||
if (argv["add"] != undefined) {
|
||||
createUser(argv).then(function() {
|
||||
options[action](argv).then(function() {
|
||||
process.exit(0);
|
||||
});
|
||||
} else if (argv["del"] != undefined) {
|
||||
deleteUser(argv).then(function() {
|
||||
process.exit(0);
|
||||
})
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue