feat(deps): add fish-deps unified dependency management command #17
Reference in New Issue
Block a user
Delete Branch "feat/fish-deps"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
fish-depswith four subcommands:status,install,update, andsynccheck_fish_deps(now a thin wrapper) with a full install/update system_fdc_bins,_fdc_tiers,_fdc_cargo,_fdc_pm,_fdc_special) — one source of truth for all toolsyayas a supported AUR helper alongsideparu; all AUR-wrapper functions (upgrade,pkg,search,parur) fall back toyaywhenparuis absentparufrom required to recommended; paru install is gated onpacmanpresence (silently skipped on non-Arch systems)uvandcargoas managed required dependencies, listed beforefishin the catalog so both are available before the fish source buildgit clone + git tag --list 'fish-*' + uv run cargo install --path .— avoids the stale distro package and the bogusfishcrate on crates.iofish-deps statusshows ⚠ with version string when fish < 4.0 is detectedfish-deps installprompts to upgrade fish when the installed version is below 4.0fish-deps updateprefers git+cargo source build for fish; falls back to system PM when cargo or uv are unavailable; usesuv self updatefor uvlazydocker(official curl script) andwakatime(GitHub binary download with arch detection) as managed install/update methodstest -a/-oincompatibilities and function autoloading (one file per function)focus/resizebind on older fzf buildssh -s -- --yescorrectly passes the flag to the piped scriptuvandcargoadded to Required table; fish upgrade path updated; dependency management section documents install method priority and uv/cargo prerequisitesInstall method priority
uv(curl) →cargo(rustup) →git+cargo source build(fish only) →cargo install(other Rust tools) → system PM (paru/yay/pacman/apt/brew/…) → curl installer (starship) → git clone (fzf) →pipx(Python tools)When multiple methods are available the user is prompted to choose; the preferred method is always option 1.
Manual Verification Checklist
fish-deps status— prints colored ✓/✗/⚠ output grouped into Required / Integrations / Recommended tiersfish-deps statuson a machine with fish < 4.0 — shows ⚠ with the current version and "upgrade to 4.0+ required"check_fish_deps— still works and produces identical output (delegates tofish-deps status)bat): runfish-deps install, confirm cargo is offered as option 1 and system PM as option 2pacman): runfish-deps install, confirmparuis silently skipped with no promptfish-deps installon a machine with fish < 4.0 — prompts "Upgrade fish?" and offers git+cargo source build (requires uv + cargo)fish-deps installwhen uv is missing — offers curl installer for uv first, then proceeds to fish buildfish-deps update— updates uv viauv self update, cargo viarustup update, fish via git+cargo source build, fzf viafzf-update, lazydocker via official script, wakatime via GitHub binary downloadfish-deps updateon a machine without uv/cargo — falls back to system PM for fishfish-deps sync— installs missing deps then updates installed ones