@launchql/cli
Version:
LaunchQL CLI
65 lines (64 loc) • 2.1 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const shelljs_1 = require("shelljs");
const core_1 = require("@launchql/core");
const types_1 = require("@launchql/types");
const server_utils_1 = require("@launchql/server-utils");
const log = new server_utils_1.Logger('revert');
exports.default = async (argv, prompter, _options) => {
const questions = [
{
name: 'database',
message: 'Database name',
type: 'text',
required: true
},
{
name: 'yes',
type: 'confirm',
message: 'Are you sure you want to proceed?',
required: true
}
];
let { database, yes, recursive, cwd } = await prompter.prompt(argv, questions);
if (!yes) {
log.info('Operation cancelled.');
return;
}
if (!cwd) {
cwd = process.cwd();
log.debug(`Using current directory: ${cwd}`);
}
if (recursive) {
const modules = await (0, core_1.listModules)(cwd);
const mods = Object.keys(modules);
if (!mods.length) {
log.error('No modules found to revert.');
prompter.close();
throw types_1.errors.NOT_FOUND({}, 'No modules found to revert.');
}
const { project } = await prompter.prompt(argv, [
{
type: 'autocomplete',
name: 'project',
message: 'Choose a project to revert',
options: mods,
required: true
}
]);
log.success(`Reverting project ${project} on database ${database}...`);
const options = (0, types_1.getEnvOptions)({
pg: {
database
}
});
await (0, core_1.revert)(options, project, database, cwd);
log.success('Revert complete.');
}
else {
log.info(`Running: sqitch revert db:pg:${database} -y`);
(0, shelljs_1.exec)(`sqitch revert db:pg:${database} -y`);
log.success('Revert complete.');
}
return argv;
};