Improve eopkg completions by using the --installed flag (#5089)

Utilized the `--install` flag added in commit #8c09d6e.

Limit `eopkg remove/autoremove/check ...` completions to installed packages.
Limit `eopkg install/upgrade/info ...` completions to available packages.
This commit is contained in:
James Lee 2018-07-10 07:21:44 +01:00 committed by ridiculousfish
parent 6a6ffe68cb
commit e26bdff487
3 changed files with 31 additions and 12 deletions

View file

@ -163,6 +163,7 @@ Xcode builds and macOS packages could not be produced with 2.7b1, but this is fi
- `apt`
- `cd` (#4061)
- `composer` (#4295)
- `eopkg`
- `flatpak` (#4456)
- `git` (#4117, #4147, #4329, #4368)
- `gphoto2`

View file

@ -39,7 +39,8 @@ end
# Setup additional completion
complete -f -c eopkg -n '__fish_seen_subcommand_from remove-repo rr enable-repo er disable-repo dr list-available la' -a "(__fish_eopkg_print_repos)" -d "Repository"
complete -f -c eopkg -n '__fish_seen_subcommand_from upgrade up remove rm autoremove rmf install it info check' -a "(__fish_print_packages)" -d "Package"
complete -f -c eopkg -n '__fish_seen_subcommand_from upgrade up install it info' -a "(__fish_print_packages)" -d "Available Package"
complete -f -c eopkg -n '__fish_seen_subcommand_from remove rm autoremove rmf check' -a "(__fish_print_packages --installed)" -d "Installed Package"
complete -f -c eopkg -n '__fish_seen_subcommand_from upgrade up remove rm install it info check list-available la list-installed li list-upgrades lu' -s c -l component -a "(__fish_eopkg_print_components)" -d "Component"
# Setup eopkg subcommand with shortcut

View file

@ -145,8 +145,24 @@ function __fish_print_packages
if type -q -f eopkg
# If the cache is less than max_age, we do not recalculate it
# Determine whether to print installed/available packages
set cache_file $XDG_CACHE_HOME/.eopkg-cache.$USER
if set -q only_installed
set cache_file $XDG_CACHE_HOME/.eopkg-installed-cache.$USER
if test -f $cache_file
cat $cache_file
set age (math (date +%s) - (stat -c '%Y' $cache_file))
set max_age 500
if test $age -lt $max_age
return
end
end
# Remove package version information from output and pipe into cache file
eopkg list-installed -N | cut -d ' ' -f 1 >$cache_file &
return
else
set cache_file $XDG_CACHE_HOME/.eopkg-available-cache.$USER
if test -f $cache_file
cat $cache_file
set age (math (date +%s) - (stat -c '%Y' $cache_file))
@ -160,6 +176,7 @@ function __fish_print_packages
eopkg list-available -N | cut -d ' ' -f 1 >$cache_file &
return
end
end
# This completes the package name from the portage tree.
# True for installing new packages. Function for printing