mirror of
https://github.com/fish-shell/fish-shell.git
synced 2024-11-29 21:43:55 +08:00
04d7d89020
Of note: The rpm/yum thing seems to be coupled, so I put it into one function that tries the yum helper and uses the rpm path otherwise. Zypper is already its own thing, so this should only be used for yum and probably dnf (does that still have the helper?) Zypper can be dropped, as that already used a separate function in the file. Apk can just be inlined - it's literally one line for installed and another for all packages.
29 lines
888 B
Fish
29 lines
888 B
Fish
function __fish_print_xbps_packages
|
|
# Caches for 5 minutes
|
|
type -q -f xbps-query || return 1
|
|
|
|
argparse i/installed -- $argv
|
|
or return 1
|
|
|
|
set -l xdg_cache_home (__fish_make_cache_dir)
|
|
or return
|
|
|
|
if not set -q _flag_installed
|
|
set -l cache_file $xdg_cache_home/.xbps-cache.$USER
|
|
if test -f $cache_file
|
|
set -l age (math (date +%s) - (stat -c '%Y' $cache_file))
|
|
set -l max_age 300
|
|
if test $age -lt $max_age
|
|
cat $cache_file
|
|
return
|
|
end
|
|
end
|
|
# prints: <package name> Package
|
|
xbps-query -Rsl | sed 's/^... \([^ ]*\)-.* .*/\1/; s/$/\t'Package'/' | tee $cache_file
|
|
return 0
|
|
else
|
|
xbps-query -l | sed 's/^.. \([^ ]*\)-.* .*/\1/' # TODO: actually put package versions in tab for locally installed packages
|
|
return 0
|
|
end
|
|
end
|