UNPKG

gbruce

Version:

gitBruce CLI for Bruce Web team

59 lines (58 loc) 2.9 kB
import inquirer from 'inquirer'; import { git, information } from '../utils/index.js'; export const create = async () => { const selectedBaseBranch = await inquirer.prompt({ name: 'base_branch', type: 'input', message: 'Specify the base branch of the repo (press `enter` for default): ', default() { return 'development'; } }); const selectedTicketNumber = await inquirer.prompt({ name: 'ticket_number', type: 'number', message: 'Write the number of your ticket : ', default() { return '1337'; } }); const branchName = await inquirer.prompt({ name: 'name', type: 'input', message: 'Write the name of the new branch (Ex: `ma nouvelle branche`): ', }); await git.checkout(selectedBaseBranch.base_branch); await git.pull(selectedBaseBranch.base_branch).then(() => information.git_pull_success(selectedBaseBranch.base_branch)); await git.checkout(['-b', `BRC-${selectedTicketNumber.ticket_number}-${branchName.name.trim().replaceAll(' ', '-')}`]).then(() => information.git_create_branch_success({ ticketNumber: selectedTicketNumber.ticket_number, branchName: branchName.name })); }; export const rebase = async ({ b }) => { const baseBranch = b !== null && b !== void 0 ? b : 'development'; const currentBranch = await git.branch(['-a']).then(({ current }) => current); await git.checkout(baseBranch); await git.pull(baseBranch); await git.checkout(currentBranch); await git.rebase([baseBranch]).then(() => information.git_rebase_success({ currentBranch, baseBranch })); }; export const push = async ({ b, f, displayMessage = true }) => { const currentBranch = await git.branch(['-a']).then(({ current }) => current); const branchToPush = b !== null && b !== void 0 ? b : currentBranch; const remoteBranchExist = await git.listRemote(['origin', branchToPush]).then((response) => response); await git.checkout(branchToPush); remoteBranchExist && !f && await git.pull('origin', branchToPush); await git.push([f ? '-f' : '-u', 'origin', branchToPush]).then(() => displayMessage && information.git_branch_push_success({ branchToPush })); }; export const pullAndRebaser = async ({ currentBranch }) => { const selectedBaseBranch = await inquirer.prompt({ name: 'base_branch', type: 'input', message: 'Specify the branch you want to pull and rebase to (press `enter` for default): ', default() { return 'development'; } }); await git.checkout(selectedBaseBranch.base_branch); await git.pull(selectedBaseBranch.base_branch); await git.checkout(currentBranch); await git.rebase([selectedBaseBranch.base_branch]).then(() => information.git_rebase_success({ currentBranch, baseBranch: selectedBaseBranch.base_branch })); };