diff --git a/src/core/utils.ts b/src/core/utils.ts index 7096eaf..bfa168d 100644 --- a/src/core/utils.ts +++ b/src/core/utils.ts @@ -8,6 +8,8 @@ import type { WorktreeInfo, } from "../types"; +let sharedSpinner: Ora | undefined; + const MAX_SUGGESTIONS = 3; const WINDOW_NAME_LIMIT = 24; @@ -35,17 +37,21 @@ export async function runCommand( process.env.NODE_ENV === "test" || process.env.BUN_ENV === "test"; if (options?.mode === "cli" && !isTest) { const msg = options.spinnerMsg || `Running ${parts[0]}...`; - spinner = ora(msg).start(); + if (!sharedSpinner) { + sharedSpinner = ora(msg).start(); + } else { + sharedSpinner.text = msg; + if (!sharedSpinner.isSpinning) { + sharedSpinner.start(); + } + } + spinner = sharedSpinner; } const result = await Bun.$`${parts}`.quiet().nothrow(); if (spinner) { - if (result.exitCode === 0) { - spinner.succeed(); - } else { - spinner.fail(); - } + spinner.stop().clear(); } return {