@launchql/cli
Version:
LaunchQL CLI
69 lines (66 loc) • 2.54 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const utils_1 = require("../utils");
const add_1 = __importDefault(require("./admin-users/add"));
const bootstrap_1 = __importDefault(require("./admin-users/bootstrap"));
const remove_1 = __importDefault(require("./admin-users/remove"));
const subcommandMap = {
add: add_1.default,
bootstrap: bootstrap_1.default,
remove: remove_1.default
};
const adminUsersUsageText = `
LaunchQL Admin Users Commands:
lql admin-users bootstrap Initialize LaunchQL roles and permissions (must be run first)
lql admin-users add Add database users with roles
lql admin-users remove Remove database users and revoke roles
Options:
--help, -h Show this help message
--cwd Working directory (default: current directory)
`;
exports.default = async (argv, prompter, options) => {
let { first: subcommand, newArgv } = (0, utils_1.extractFirst)(argv);
// Prompt if no subcommand provided
if (!subcommand) {
// Show usage if explicitly requested and no subcommand provided
if (argv.help || argv.h) {
console.log(adminUsersUsageText);
process.exit(0);
}
const answer = await prompter.prompt(argv, [
{
type: 'autocomplete',
name: 'subcommand',
message: 'What admin users operation do you want to perform?',
options: Object.keys(subcommandMap).map(cmd => ({
name: cmd,
value: cmd,
description: getSubcommandDescription(cmd)
}))
}
]);
subcommand = answer.subcommand;
}
if (subcommand === 'help') {
console.log(adminUsersUsageText);
process.exit(0);
}
const subcommandFn = subcommandMap[subcommand];
if (!subcommandFn) {
console.error(`Unknown admin-users subcommand: ${subcommand}`);
console.log(adminUsersUsageText);
process.exit(1);
}
await subcommandFn(newArgv, prompter, options);
};
function getSubcommandDescription(cmd) {
const descriptions = {
bootstrap: 'Initialize LaunchQL roles and permissions (must be run first)',
add: 'Add database users with roles',
remove: 'Remove database users and revoke roles'
};
return descriptions[cmd] || '';
}
;