UNPKG

@lenne.tech/cli

Version:

lenne.Tech CLI: lt

131 lines 10.3 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); /** * Checkout git branch */ const NewCommand = { alias: ['g'], description: 'Checkout git branch', hidden: false, name: 'get', run: (toolbox) => __awaiter(void 0, void 0, void 0, function* () { // Retrieve the tools we need const { filesystem, git, helper, npm, parameters, print: { error, info, spin, success }, prompt, system, } = toolbox; // Start timer const timer = system.startTimer(); // Check git if (!(yield git.gitInstalled())) { return; } // Get (part of) branch name const branchName = yield helper.getInput(parameters.first, { name: 'branch name', showError: true, }); if (!branchName) { return; } // Check changes in current branch (reset necessary) if (!(yield git.askForReset({ showError: true }))) { return; } // Search for branch, which includes branch name const branch = yield git.getBranch(branchName, { error: true, exact: false, remote: false, spin: true, }); if (!branch) { process.exit(1); } // Get remote branch const remoteBranch = yield git.getBranch(branch, { remote: true }); // Ask for checkout branch if (branchName !== branch) { if (!parameters.options.noConfirm && !(yield prompt.confirm(`Checkout ${remoteBranch ? 'remote' : 'local'} branch ${branch}`))) { process.exit(1); } } else { success(`Branch ${branchName} found`); } // Checkout branch yield system.run(`git checkout ${(yield git.getDefaultBranch()) || 'main'}`); let checkoutSpin; // Handling for remote if (remoteBranch) { // Delete local let removed = false; const checkSpin = spin('Check status'); if (branch !== 'main' && branch && (yield git.diffFiles(branch, { noDiffResult: '' })).length) { checkSpin.succeed(); let mode = parameters.options.mode; if (!mode) { if (yield prompt.confirm(`Remove local commits of ${branch}`)) { mode = 'hard'; } } if (mode === 'hard') { const prepareSpin = spin(`Refresh ${branch}`); yield system.run(`git branch -D ${branch}`); removed = true; prepareSpin.succeed(); } } else { checkSpin.succeed(); } // Start spin checkoutSpin = spin(`Checkout ${branch}`); // Checkout remote if local branch not exists if (removed || !(yield git.getBranch(branch, { local: true }))) { yield system.run(`git fetch && git checkout --track origin/${branch} && git reset --hard && git clean -fd && git pull`); // Checkout local branch } else { yield system.run(`git fetch && git checkout ${branch} && git reset --hard && git clean -fd && git pull`); } // Handling for local only } else if (branch) { checkoutSpin = spin(`Checkout ${branch}`); yield system.run(`git fetch && git checkout ${branch} && git reset --hard && git clean -fd`); // No branch found } else { error(`Branch ${branch} not found!`); return; } // Checkout done checkoutSpin.succeed(); // Install npm packages yield npm.install(); // Init lerna projects if (filesystem.isFile('./lerna.json')) { const initProjectsSpin = spin('Init projects'); yield system.run('npm run init --if-present'); initProjectsSpin.succeed(); } // Success info success(`${remoteBranch ? 'Remote' : 'Local'} branch ${branch} checked out in ${helper.msToMinutesAndSeconds(timer())}m.`); info(''); if (!toolbox.parameters.options.fromGluegunMenu) { process.exit(); } // For tests return `get branch ${branch}`; }), }; exports.default = NewCommand; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2dpdC9nZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFJQTs7R0FFRztBQUNILE1BQU0sVUFBVSxHQUFtQjtJQUNqQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUM7SUFDWixXQUFXLEVBQUUscUJBQXFCO0lBQ2xDLE1BQU0sRUFBRSxLQUFLO0lBQ2IsSUFBSSxFQUFFLEtBQUs7SUFDWCxHQUFHLEVBQUUsQ0FBTyxPQUErQixFQUFFLEVBQUU7UUFDN0MsNkJBQTZCO1FBQzdCLE1BQU0sRUFDSixVQUFVLEVBQ1YsR0FBRyxFQUNILE1BQU0sRUFDTixHQUFHLEVBQ0gsVUFBVSxFQUNWLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUNyQyxNQUFNLEVBQ04sTUFBTSxHQUNQLEdBQUcsT0FBTyxDQUFDO1FBRVosY0FBYztRQUNkLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUVsQyxZQUFZO1FBQ1osSUFBSSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ2hDLE9BQU87UUFDVCxDQUFDO1FBRUQsNEJBQTRCO1FBQzVCLE1BQU0sVUFBVSxHQUFHLE1BQU0sTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFO1lBQ3pELElBQUksRUFBRSxhQUFhO1lBQ25CLFNBQVMsRUFBRSxJQUFJO1NBQ2hCLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNoQixPQUFPO1FBQ1QsQ0FBQztRQUVELG9EQUFvRDtRQUNwRCxJQUFJLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7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