feat(deps): add fish-deps unified dependency management command
Introduces `fish-deps` with four subcommands: - status: colored installed/missing report per tier (required/integrations/recommended) - install: interactively install each missing dep, prompts method when multiple exist - update: update all installed deps using their preferred method - sync: install missing then update installed Install method priority: cargo (Rust tools get latest crate) > system PM (paru/pacman/apt/brew/pkg/dnf/yum) > git clone (fzf via fzf-update) > curl installer (starship, fisher) > pipx (wakatime). Splits into focused helper files: - _fish_deps_catalog.fish: parallel-array dep catalog with tiers, cargo crates, PM names, special install keys - _fish_deps_pm.fish: PM detection and install/upgrade helpers - _fish_deps_status.fish: tier-grouped colored status display - _fish_deps_install.fish: per-dep interactive install with method selection - _fish_deps_update.fish: per-dep update using known install method check_fish_deps becomes a thin wrapper delegating to `fish-deps status`. README updated with Dependency Management section.
This commit is contained in:
@@ -1,50 +1,7 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
# Check all fish-related dependencies
|
||||
# Thin wrapper kept for backwards compatibility.
|
||||
function check_fish_deps --description 'Check all fish-related dependencies'
|
||||
set -l required fish fisher starship fzf zoxide direnv paru
|
||||
set -l integrations wakatime tailscale
|
||||
set -l recommended eza lsd bat btop dust duf prettyping most rg lazygit lazydocker trash kitty wezterm
|
||||
|
||||
function __print_dep
|
||||
set -l dep $argv[1]
|
||||
if type -q $dep
|
||||
set_color green
|
||||
echo -n " "
|
||||
set_color normal
|
||||
echo -n "$dep "
|
||||
set_color brblack
|
||||
echo "(Found at "(type -p $dep)")"
|
||||
set_color normal
|
||||
else
|
||||
set_color red
|
||||
echo -n " "
|
||||
set_color normal
|
||||
echo -n "$dep "
|
||||
set_color brblack
|
||||
echo "(Not installed)"
|
||||
set_color normal
|
||||
end
|
||||
end
|
||||
|
||||
set_color cyan; echo "Required Dependencies:"; set_color normal
|
||||
for dep in $required
|
||||
__print_dep $dep
|
||||
end
|
||||
echo ""
|
||||
|
||||
set_color cyan; echo "Integrations:"; set_color normal
|
||||
for dep in $integrations
|
||||
__print_dep $dep
|
||||
end
|
||||
echo ""
|
||||
|
||||
set_color cyan; echo "Recommended Dependencies:"; set_color normal
|
||||
for dep in $recommended
|
||||
__print_dep $dep
|
||||
end
|
||||
echo ""
|
||||
|
||||
functions -e __print_dep
|
||||
fish-deps status
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user