Skip to content

refactor(installer): replace gum with fzf, backup configs on overwrite#4

Merged
ITZSHOAIB merged 2 commits into
mainfrom
fix/curl-pipe-install
Jun 20, 2026
Merged

refactor(installer): replace gum with fzf, backup configs on overwrite#4
ITZSHOAIB merged 2 commits into
mainfrom
fix/curl-pipe-install

Conversation

@ITZSHOAIB

Copy link
Copy Markdown
Owner

Summary

  • Remove gum entirely — replaced with fzf (single/multi-select) and plain read (confirmations); pure printf + ANSI escapes for the banner and post-install message; inline \r\033[K for brew progress. One fewer dep, zero TUI alternate-screen lag between prompts.
  • Back up existing configs before overwriting_write_file now copies <file><file>.bak before writing new content when CMUXUP_OVERWRITE=1. Re-running the installer is safe.

Test plan

  • bats test/cmuxup.bats test/install.bats → 23/23 pass
  • Interactive run: prompts appear instantly with no lag between selections
  • Run installer twice with CMUXUP_OVERWRITE=1.bak files created on second run
  • CMUXUP_NON_INTERACTIVE=1 bash install.sh --dry-run → exits 0 (no fzf needed)

🤖 Generated with Claude Code

Remove gum entirely — one fewer dep, zero TUI-mode lag between prompts.

Interactive prompts now use fzf (single-select via _pick, multi-select
via _pick_multi with start:select-all pre-selection) and plain read
for y/n confirmations. Themed with Catppuccin Mocha fzf colour scheme.

Banner and post-install message use printf + raw ANSI escapes (no
external binary needed). brew install progress uses \r\033[K inline
overwrite rather than gum spin.

fzf is bootstrapped via brew if absent (same pattern as gum was).
Non-interactive / CI / dry-run paths are unchanged; all 22 tests pass.

Refs: cmuxup low-deps-installer
When CMUXUP_OVERWRITE=1 and a config file already exists, copy it to
<file>.bak before writing the new content. Prevents silent data loss
on re-runs or accidental overwrites.

Refs: cmuxup safe-overwrite
@ITZSHOAIB ITZSHOAIB merged commit 1278797 into main Jun 20, 2026
1 check passed
@ITZSHOAIB ITZSHOAIB deleted the fix/curl-pipe-install branch June 20, 2026 09:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant