Fix fisher conflicts and stale end-4 paths found by the smoke test

First real run of tests/smoke.sh surfaced three issues:

- fish.sh: repo configs/ ships fisher.fish and nvm.fish functions, so the
  new (previously always-broken) 'fisher install' hit fisher's own
  conflict check and aborted. Now: check 'type -q fisher' / 'type -q nvm'
  inside fish and only bootstrap what is actually missing.
- fish.sh: end-4 renamed hypr/hyprland/colors.conf to colors.lua and
  moved hyprlock colors under hypr/hyprlock/ - the stale paths made the
  old script abort on cp. Updated paths, warn-and-skip stays as the
  safety net if upstream moves again.
- LazyVim.sh: same fisher conflict class in its fish branch - guard the
  nvm.fish install with a 'type -q nvm' check.
- tests/smoke.sh: the zsh backup assertion was wrong (fresh container has
  no .zshrc for run 1 to back up). Pre-seed a marker config instead and
  assert both rotation (2 backups) and that neither run destroys the
  original content.

Verified: tests/smoke.sh fish.sh zsh.sh -> PASS/PASS, bat.sh -> PASS;
pre-push hook green on all 9 scripts.
This commit is contained in:
alvinlollo
2026-10-08 14:26:56 +11:00
parent f8bb57f666
commit 8320546ad4
3 changed files with 42 additions and 14 deletions
+6 -1
View File
@@ -129,7 +129,12 @@ fish)
fish -c "source '$fisher_src' && fisher install jorgebucaran/fisher"
rm -f "$fisher_src"
fi
fish -c 'fisher install jorgebucaran/nvm.fish'
# fisher refuses to install over existing files - skip when already present
if fish -c 'type -q nvm' 2>/dev/null; then
echo "nvm.fish already available in fish, skipping install."
else
fish -c 'fisher install jorgebucaran/nvm.fish'
fi
else
echo "No ~/.config/fish/config.fish found, skipping fish plugin setup"
fi