fix: repair fisher install and harden config symlinking#27
Merged
Conversation
- 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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes a broken install bootstrap and tightens up a few rough edges in the install scripts.
Real bug
03-fisher-install.fishfetchedhttps://git.io/fisher, but GitHub deactivated thegit.ioshortener in 2022. Thecurlreturned nothing and the&&short-circuited, somake full-installsilently installed no fisher/plugins. Now uses the rawgithubusercontent.comURL.Hardening
aliases.fishkeyed theaptget/searchaliases 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.02-move-files.shusedln -sfover existing real config files, destroying them with no backup. Alink()helper now moves any pre-existing non-symlink to.bakfirst. Also addedset -euo pipefail.functions -q fisher.Testing
shellcheck install-scripts/*.sh config/tmux/scripts/*.sh scripts/*— cleanfish --no-executeon all.fishfiles — clean