feat(fish-deps): build fish from source via git + cargo when upgrading

Adds a git-cargo-fish install method that clones fish-shell, checks out
the latest tag, and runs `uv run --no-managed-python cargo install --path .`.
This is offered first in `fish-deps install` (requires cargo + uv) and
used automatically by `fish-deps update`, falling back to the system PM
when cargo or uv are absent.

Removes the stale `cargo install fish` README note (that crate is a
library, not the shell binary).
This commit is contained in:
2026-05-18 23:29:55 -04:00
parent fee2d99bea
commit 7936a0966e
4 changed files with 75 additions and 14 deletions
+4 -3
View File
@@ -10,7 +10,8 @@
# _fdc_cargo — cargo crate name, or "" if not on crates.io
# _fdc_pm — system PM package name, or "" if not in repos
# _fdc_special — special install key: rustup-installer | fisher-bootstrap |
# fzf-update | paru-build | pipx | curl-installer | "" (none)
# fzf-update | paru-build | pipx | curl-installer |
# git-cargo-fish | "" (none)
#
# cargo is listed second so it is installed before Rust tools that depend on it.
function _fish_deps_catalog
@@ -25,7 +26,7 @@ function _fish_deps_catalog
rec rec rec rec rec rec rec rec rec rec rec rec rec rec
set -g _fdc_cargo \
fish "" "" starship "" zoxide "" "" \
"" "" "" starship "" zoxide "" "" \
"" "" \
eza lsd bat "" du-dust "" "" "" ripgrep "" "" trashy "" ""
@@ -35,7 +36,7 @@ function _fish_deps_catalog
eza lsd bat btop dust duf prettyping most ripgrep lazygit lazydocker trash kitty wezterm
set -g _fdc_special \
"" rustup-installer fisher-bootstrap curl-installer fzf-update "" "" paru-build \
git-cargo-fish rustup-installer fisher-bootstrap curl-installer fzf-update "" "" paru-build \
wakatime-binary "" \
"" "" "" "" "" "" "" "" "" "" curl-lazydocker "" "" ""
end