From 87b1c342722450002f7347a964d02a8f54f4ff24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Che=C5=82miniak?= Date: Fri, 8 Nov 2024 15:05:57 +0100 Subject: [PATCH] feat: add gh cli installation prompt (#24) --- .../installSteps/github/ghInstaller.ts | 1 - .../installSteps/github/install.ts | 23 +++++++++++++++---- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/packages/core/installMachine/installSteps/github/ghInstaller.ts b/packages/core/installMachine/installSteps/github/ghInstaller.ts index 7378b42..ac9ad7c 100644 --- a/packages/core/installMachine/installSteps/github/ghInstaller.ts +++ b/packages/core/installMachine/installSteps/github/ghInstaller.ts @@ -49,7 +49,6 @@ export const installGitHubCLI = (): boolean => { logWithColoredPrefix('github', 'Installing GitHub CLI...'); try { execSync(installCommand, { stdio: 'inherit' }); - logWithColoredPrefix('github', 'GitHub CLI installed successfully.'); return true; } catch (error) { console.error('Failed to install GitHub CLI.'); diff --git a/packages/core/installMachine/installSteps/github/install.ts b/packages/core/installMachine/installSteps/github/install.ts index 99b143d..e3deca2 100644 --- a/packages/core/installMachine/installSteps/github/install.ts +++ b/packages/core/installMachine/installSteps/github/install.ts @@ -1,3 +1,4 @@ +import inquirer from 'inquirer'; import { logWithColoredPrefix } from '../../../utils/logWithColoredPrefix'; import { installGitHubCLI, isGitHubCLIInstalled } from './ghInstaller'; import { @@ -14,13 +15,27 @@ interface ProjectRepositoryOptions { } // Helper function to check if GitHub CLI is installed -const checkGitHubCLI = () => { +const checkGitHubCLI = async () => { logWithColoredPrefix('github', 'Checking if GitHub CLI is installed...'); if (!isGitHubCLIInstalled()) { logWithColoredPrefix('github', 'GitHub CLI is not installed.'); - const installed = installGitHubCLI(); - if (!installed) { - console.error('GitHub CLI installation failed. Exiting...'); + const { shouldInstallGitHubCLI } = await inquirer.prompt([ + { + type: 'confirm', + name: 'shouldInstallGitHubCLI', + message: 'Would you like us to install GitHub CLI?', + default: true, + }, + ]); + + if (shouldInstallGitHubCLI) { + const installed = installGitHubCLI(); + if (!installed) { + console.error('GitHub CLI installation failed. Exiting...'); + process.exit(1); + } + } else { + console.error('GitHub CLI is not installed. Please install GitHub CLI and try again.'); process.exit(1); } }