bitbucket-env-manager
Version:
Deploys Bitbucket Environment
72 lines (62 loc) • 2.05 kB
JavaScript
#!/usr/bin/env node
const { intro, outro, select, isCancel, cancel, log } = require('@clack/prompts');
const color = require('picocolors');
const { runInit, runGenerate } = require('./src/init');
const { runDeploy } = require('./src/deploy');
const { delete_env } = require('./src/delete_env');
const { list } = require('./src/list');
const { download } = require('./src/download');
const [, , ...args] = process.argv;
const [firstArg] = args;
(async () => {
console.clear();
intro(color.bgCyan(color.black(' Bitbucket Env Manager ')));
try {
const choices = ['init', 'generate', 'deploy', 'list', 'download', 'delete'];
let choice = choices.find((c) => c === firstArg);
if (!choice) {
if (firstArg) {
log.warn(`No matching command for "${firstArg}"`);
}
choice = await select({
message: 'What would you like to do?',
options: [
{ value: 'init', label: 'Init', hint: 'Configure OAuth credentials' },
{ value: 'generate', label: 'Generate', hint: 'Create project template' },
{ value: 'deploy', label: 'Deploy', hint: 'Push env vars to Bitbucket' },
{ value: 'list', label: 'List', hint: 'View environment variables' },
{ value: 'download', label: 'Download', hint: 'Fetch env vars from Bitbucket' },
{ value: 'delete', label: 'Delete', hint: 'Remove an environment' },
],
});
if (isCancel(choice)) {
cancel('Operation cancelled.');
process.exit(0);
}
}
switch (choice) {
case 'init':
await runInit();
break;
case 'generate':
await runGenerate();
break;
case 'deploy':
await runDeploy();
break;
case 'list':
await list();
break;
case 'download':
await download({ multiple: true });
break;
case 'delete':
await delete_env();
break;
}
outro(color.green('Done!'));
} catch (e) {
log.error(e.message);
process.exit(1);
}
})();