fix(deps): remove paru install, enforce cargo preference for Rust tools

Catalog: clear paru's pm and special install entries so it appears in
status but fish-deps install skips it (it's a package manager, not a
managed dep).

Install: cargo is now always attempted first for Rust tools. When cargo
is absent but a crate exists, a note is printed suggesting rustup.
When only one method is available the chosen method is shown so the user
can see whether cargo or the system PM is being used. Method prompt now
shows the default label inline for clarity.

Removed dead paru-build switch case from the install executor.
This commit is contained in:
2026-05-18 22:13:13 -04:00
parent a7c6b9097d
commit a70e88c344
2 changed files with 19 additions and 28 deletions
+3 -3
View File
@@ -10,7 +10,7 @@
# _fdc_cargo — cargo crate name, or "" if not on crates.io # _fdc_cargo — cargo crate name, or "" if not on crates.io
# _fdc_pm — system PM package name, or "" if not in repos # _fdc_pm — system PM package name, or "" if not in repos
# _fdc_special — special install key: fisher-bootstrap | fzf-update | # _fdc_special — special install key: fisher-bootstrap | fzf-update |
# paru-build | pipx | curl-installer | "" (none) # pipx | curl-installer | "" (none)
function _fish_deps_catalog function _fish_deps_catalog
set -g _fdc_bins \ set -g _fdc_bins \
fish fisher starship fzf zoxide direnv paru \ fish fisher starship fzf zoxide direnv paru \
@@ -28,12 +28,12 @@ function _fish_deps_catalog
eza lsd bat "" du-dust "" "" "" ripgrep "" "" trash-cli "" "" eza lsd bat "" du-dust "" "" "" ripgrep "" "" trash-cli "" ""
set -g _fdc_pm \ set -g _fdc_pm \
fish "" starship fzf zoxide direnv paru \ fish "" starship fzf zoxide direnv "" \
wakatime tailscale \ wakatime tailscale \
eza lsd bat btop dust duf prettyping most ripgrep lazygit lazydocker trash kitty wezterm eza lsd bat btop dust duf prettyping most ripgrep lazygit lazydocker trash kitty wezterm
set -g _fdc_special \ set -g _fdc_special \
"" fisher-bootstrap curl-installer fzf-update "" "" paru-build \ "" fisher-bootstrap curl-installer fzf-update "" "" "" \
pipx "" \ pipx "" \
"" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
end end
+14 -23
View File
@@ -20,13 +20,19 @@ function _fish_deps_install
set -l methods set -l methods
set -l method_labels set -l method_labels
# Cargo — only if cargo is present and the tool has a crate # Cargo first — preferred for Rust tools; gets the latest crate version
if test -n "$cargo_crate"; and type -q cargo if test -n "$cargo_crate"
if type -q cargo
set -a methods cargo set -a methods cargo
set -a method_labels "cargo ($cargo_crate)" set -a method_labels "cargo ($cargo_crate)"
else
set_color brblack
echo " note: cargo not found — install rustup for the latest $bin"
set_color normal
end
end end
# System PM — only if a PM is detected and the tool is in repos # System PM — after cargo so cargo is always the default when available
if test -n "$pm_pkg"; and test -n "$pm" if test -n "$pm_pkg"; and test -n "$pm"
set -a methods pm set -a methods pm
set -a method_labels "$pm ($pm_pkg)" set -a method_labels "$pm ($pm_pkg)"
@@ -43,15 +49,6 @@ function _fish_deps_install
case curl-installer case curl-installer
set -a methods special-curl set -a methods special-curl
set -a method_labels "curl installer" set -a method_labels "curl installer"
case paru-build
if type -q yay
set -a methods special-yay-paru
set -a method_labels "yay -S paru"
end
if type -q pacman
set -a methods special-paru
set -a method_labels "build from AUR (makepkg)"
end
case pipx case pipx
if type -q pipx if type -q pipx
set -a methods special-pipx set -a methods special-pipx
@@ -83,13 +80,16 @@ function _fish_deps_install
echo " Available methods:" echo " Available methods:"
set -l m 1 set -l m 1
for lbl in $method_labels for lbl in $method_labels
echo " $m) $lbl" set_color brblack; echo -n " $m) "; set_color normal
echo $lbl
set m (math $m + 1) set m (math $m + 1)
end end
read -l -P " Choose [1-"(count $methods)"] (default 1): " _choice read -l -P " Choose [1-"(count $methods)"] (default 1 = $method_labels[1]): " _choice
if test -n "$_choice"; and test "$_choice" -ge 1; and test "$_choice" -le (count $methods) if test -n "$_choice"; and test "$_choice" -ge 1; and test "$_choice" -le (count $methods)
set chosen_method $methods[$_choice] set chosen_method $methods[$_choice]
end end
else
set_color brblack; echo " Installing via $method_labels[1]"; set_color normal
end end
# Execute chosen method # Execute chosen method
@@ -107,15 +107,6 @@ function _fish_deps_install
if test "$bin" = starship if test "$bin" = starship
curl -sS https://starship.rs/install.sh | sh curl -sS https://starship.rs/install.sh | sh
end end
case special-yay-paru
yay -S --noconfirm paru
case special-paru
set -l _build_dir (mktemp -d)
git clone https://aur.archlinux.org/paru.git $_build_dir
and pushd $_build_dir
and makepkg -si --noconfirm
and popd
rm -rf $_build_dir
case special-pipx case special-pipx
pipx install $bin pipx install $bin
case special-pip case special-pip