9b342114aa
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.
42 lines
1.3 KiB
Fish
42 lines
1.3 KiB
Fish
# Copyright (C) 2026 Rootiest
|
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
|
|
function fish-deps --description 'Manage fish shell dependencies'
|
|
set -l subcmd $argv[1]
|
|
|
|
switch $subcmd
|
|
case status ''
|
|
_fish_deps_status
|
|
case install
|
|
_fish_deps_install
|
|
case update
|
|
_fish_deps_update
|
|
case sync
|
|
echo "=== Installing missing deps ==="
|
|
_fish_deps_install
|
|
echo ""
|
|
echo "=== Updating installed deps ==="
|
|
_fish_deps_update
|
|
case '*'
|
|
set_color red
|
|
echo "Unknown subcommand: $subcmd"
|
|
set_color normal
|
|
echo ""
|
|
__fish_deps_help
|
|
return 1
|
|
end
|
|
end
|
|
|
|
function __fish_deps_help
|
|
set_color cyan; echo "fish-deps — manage fish shell dependencies"; set_color normal
|
|
echo ""
|
|
echo "Usage:"
|
|
echo " fish-deps [status] Check installed/missing deps (default)"
|
|
echo " fish-deps install Install missing deps interactively"
|
|
echo " fish-deps update Update all installed deps"
|
|
echo " fish-deps sync Install missing, then update all"
|
|
echo ""
|
|
echo "Install method priority: cargo > system PM > git/curl/pipx"
|
|
echo "When multiple methods are available, you will be prompted to choose."
|
|
end
|