autocomplete 'yum install' using yum cache

This commit is contained in:
aliva 2013-03-01 23:27:03 +03:30
parent 94b1d58cc2
commit 87aca05e7f
2 changed files with 20 additions and 1 deletions

View file

@ -7,7 +7,7 @@
# Test if completing using package names is appropriate
function __fish_yum_package_ok
for i in (commandline -poc)
if contains $i update upgrade remove erase
if contains $i update upgrade remove erase install reinstall
return 0
end
end

View file

@ -22,6 +22,25 @@ function __fish_print_packages
return
end
# yum is slow, just like rpm, so go to the background
if type -f /usr/share/yum-cli/completion-helper.py >/dev/null
# If the cache is less than five minutes old, we do not recalculate it
set cache_file /tmp/.yum-cache.$USER
if test -f $cache_file
cat $cache_file
set age (math (date +%s) - (stat -c '%Y' $cache_file))
set max_age 250
if test $age -lt $max_age
return
end
end
# Remove package version information from output and pipe into cache file
/usr/share/yum-cli/completion-helper.py list all -d 0 -C >$cache_file | cut -d '.' -f 1 | sed '1d' | sed '/^\s/d' | sed -e 's/$/'\t$package'/' &
end
# Rpm is too slow for this job, so we set it up to do completions
# as a background job and cache the results.