From a3d99eec3f289d689dabda39a2a553d68b8d780f Mon Sep 17 00:00:00 2001 From: rootiest Date: Mon, 18 May 2026 22:01:00 -0400 Subject: [PATCH] fix(aur): fall back to yay when paru is unavailable upgrade, pkg, search, and parur now detect paru first, then yay, and print a clear error if neither is installed. Removes the hard dependency on paru specifically across all AUR-wrapper functions. --- functions/parur.fish | 15 +++++++++++---- functions/pkg.fish | 17 +++++++++++------ functions/search.fish | 17 +++++++++++------ functions/upgrade.fish | 16 +++++++++++----- 4 files changed, 44 insertions(+), 21 deletions(-) diff --git a/functions/parur.fish b/functions/parur.fish index dddf658..3d0a249 100644 --- a/functions/parur.fish +++ b/functions/parur.fish @@ -3,16 +3,23 @@ # Interactively search and remove an installed package using fzf function parur --description 'Interactively search and remove an installed package using fzf' - # 1. Use command substitution to get the package list from fzf + set -l aur "" + if type -q paru + set aur paru + else if type -q yay + set aur yay + else + echo "No AUR helper found (install paru or yay)" >&2 + return 1 + end + set -l pkg_list ( pacman -Qqs \ | fzf --preview 'pacman -Qi {}' --multi ) - # 2. Check if a package was selected. if test (count $pkg_list) -gt 0 - # 3. Pass the selected packages directly to paru -R - paru -R $pkg_list + $aur -R $pkg_list else echo "No packages selected for removal." end diff --git a/functions/pkg.fish b/functions/pkg.fish index 2732deb..6b9dd57 100644 --- a/functions/pkg.fish +++ b/functions/pkg.fish @@ -1,10 +1,15 @@ # Copyright (C) 2026 Rootiest # SPDX-License-Identifier: AGPL-3.0-or-later -# Function for installing packages with paru. -# This runs `paru` with the `-S` flag to install one or more packages. -# The `$argv` variable passes all arguments given to the `pkg` function -# directly to the `paru` command. -function pkg --wraps='paru' --description 'directly to the `paru` command.' - paru -S $argv +function pkg --description 'Install packages via paru or yay' + set -l aur "" + if type -q paru + set aur paru + else if type -q yay + set aur yay + else + echo "No AUR helper found (install paru or yay)" >&2 + return 1 + end + $aur -S $argv end diff --git a/functions/search.fish b/functions/search.fish index 823fb97..35f28d7 100644 --- a/functions/search.fish +++ b/functions/search.fish @@ -1,10 +1,15 @@ # Copyright (C) 2026 Rootiest # SPDX-License-Identifier: AGPL-3.0-or-later -# Function for searching for packages to install with paru. -# This runs `paru` with the search flags. -# The `$argv` variable passes all arguments given to the `search` function -# directly to the `paru` command. -function search --wraps='paru' --description 'directly to the `paru` command.' - paru $argv +function search --description 'Search/install packages interactively via paru or yay' + set -l aur "" + if type -q paru + set aur paru + else if type -q yay + set aur yay + else + echo "No AUR helper found (install paru or yay)" >&2 + return 1 + end + $aur $argv end diff --git a/functions/upgrade.fish b/functions/upgrade.fish index 59c1ff9..7fd00cf 100644 --- a/functions/upgrade.fish +++ b/functions/upgrade.fish @@ -1,9 +1,15 @@ # Copyright (C) 2026 Rootiest # SPDX-License-Identifier: AGPL-3.0-or-later -# Function for upgrading the system with paru. -# This runs `paru` with the `-Syu` flags to sync, refresh, and upgrade all -# packages, and adds `--no-confirm` to bypass the confirmation prompt. -function upgrade --wraps='paru' --description 'packages, and adds `--no-confirm` to bypass the confirmation prompt.' - paru -Syu --noconfirm +function upgrade --description 'Full system upgrade via paru or yay' + set -l aur "" + if type -q paru + set aur paru + else if type -q yay + set aur yay + else + echo "No AUR helper found (install paru or yay)" >&2 + return 1 + end + $aur -Syu --noconfirm end