UNPKG

@cliz/gpm

Version:
73 lines (72 loc) 2.72 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const cli_1 = require("@cliz/cli"); const core_1 = require("../core"); exports.default = (0, cli_1.defineSubCommand)((createCommand) => { return createCommand('Remove a project') .argument('<repo>', 'The Git Project') .action(async ({ args }) => { try { const repo = args.repo; // await core_1.default.prepare(); const projectConfig = core_1.default.config.get('project'); if (!(projectConfig === null || projectConfig === void 0 ? void 0 : projectConfig.workdir)) { await setupConfig(core_1.default); } await core_1.default.project.prepare(); // const projects = await core_1.default.project.search(repo); let project = projects[0]; if (projects.length > 1) { const answers = await cli_1.inquirer.prompt([ { name: 'projectId', type: 'list', message: 'Select ?', choices: projects.map((e) => ({ name: e.id, value: e.id })), validate: (t) => !!t, }, ]); project = projects.find((e) => answers.projectId === e.id); } if (!project) { return console.error(`Project not found: ${cli_1.api.color.error(repo)}`); } const answers = await cli_1.inquirer.prompt([ { name: 'ok', type: 'confirm', message: `Confirm to remove ${cli_1.api.color.error(project.id)}?`, required: true, default: false, }, ]); if (answers.ok) { await core_1.default.project.remove(project.provider, project.owner, project.name); console.info(`Success to remove ${cli_1.api.color.error(project.id)} at ${cli_1.api.color.error(project.path)}`); } } catch (error) { console.error(error); } }); }); async function setupConfig(gpm) { const answers = await cli_1.inquirer.prompt([ { name: 'workdir', type: 'text', message: 'Input Your Work Directory ?', default: cli_1.api.path.homedir('code'), validate: (t) => !!t, }, ]); let workdir = answers.workdir; if (!workdir.startsWith('/')) { workdir = cli_1.api.path.homedir(workdir); } gpm.config.set('project', { workdir, }); }