UNPKG

@launchql/cli

Version:
65 lines (64 loc) 2.1 kB
"use strict"; 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; };