Skip to content

fix: repair fisher install and harden config symlinking#27

Merged
RWejlgaard merged 2 commits into
masterfrom
fix/install-script-improvements
Jun 22, 2026
Merged

fix: repair fisher install and harden config symlinking#27
RWejlgaard merged 2 commits into
masterfrom
fix/install-script-improvements

Conversation

@RWejlgaard

Copy link
Copy Markdown
Owner

Summary

Fixes a broken install bootstrap and tightens up a few rough edges in the install scripts.

Real bug

  • fisher install was dead. 03-fisher-install.fish fetched https://git.io/fisher, but GitHub deactivated the git.io shortener in 2022. The curl returned nothing and the && short-circuited, so make full-install silently installed no fisher/plugins. Now uses the raw githubusercontent.com URL.

Hardening

  • Consistent distro detection. aliases.fish keyed the apt get/search aliases off /etc/lsb-release, while the installer keys Debian/Ubuntu off /etc/debian_version. Pure Debian (and minimal Ubuntu images) have the latter but not the former. Now both agree.
  • No more silent clobbering. 02-move-files.sh used ln -sf over existing real config files, destroying them with no backup. A link() helper now moves any pre-existing non-symlink to .bak first. Also added set -euo pipefail.
  • Tests catch this class of bug. The per-distro Docker tests only asserted symlinks + one function — which is exactly why the fisher break slipped through. They now also assert functions -q fisher.

Testing

  • shellcheck install-scripts/*.sh config/tmux/scripts/*.sh scripts/* — clean
  • fish --no-execute on all .fish files — clean

- Replace the dead git.io/fisher shortener (deactivated by GitHub in 2022)
  with the raw githubusercontent URL so fisher actually installs again.
- Key the apt get/search aliases off /etc/debian_version to match the
  installer's Debian/Ubuntu detection.
- Back up pre-existing real config files to .bak before symlinking so a
  fresh-machine install never silently clobbers them; add set -euo pipefail.
- Assert fisher is installed in the per-distro Docker tests so a broken
  bootstrap fails CI instead of slipping through.
@RWejlgaard RWejlgaard merged commit 36d54de into master Jun 22, 2026
5 checks passed
@RWejlgaard RWejlgaard deleted the fix/install-script-improvements branch June 22, 2026 20:15
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