X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=bash-completion-rpm-cache.patch;h=ef998619199757eee1f20cecdc5a9324049ffce1;hb=d3e2f237df618ecd3250d94a8c7ffcff81468f89;hp=01ed59a30ca500abf3160df23663eee0960a3db9;hpb=0ab276f480341231a4a5923feb214f09bd6b57fb;p=packages%2Fbash-completion.git diff --git a/bash-completion-rpm-cache.patch b/bash-completion-rpm-cache.patch index 01ed59a..ef99861 100644 --- a/bash-completion-rpm-cache.patch +++ b/bash-completion-rpm-cache.patch @@ -1,48 +1,43 @@ ---- bash-completion/bash_completion~ 2009-04-02 18:56:57.000000000 +0300 -+++ bash-completion/bash_completion 2009-04-02 18:58:54.003383671 +0300 -@@ -1836,29 +1836,26 @@ +support rpm (jbj rpm 4.4.7+) hrmib exports for rpm -qa filter (via %_hrmib_path /var/cache/hrmib) +add version+release+arch to installed packages filter + +-- +Signed-off-by: Elan Ruusamäe + +--- bash-completion/contrib/rpm~ 2009-07-21 06:28:45.000000000 +0300 ++++ bash-completion/contrib/rpm 2009-07-21 06:37:08.381279143 +0300 +@@ -6,17 +6,31 @@ # _rpm_installed_packages() { -- local ver nodig nosig +- local ver nodig="$1" nosig="$2" ++ local nodig="$1" nosig="$2" ++ + # if rpm (4.4.7+) is configured to export it's rpmdb to /var/cache/hrmib (%_hrmib_path) + if [ -d /var/cache/hrmib -a -r /var/cache/hrmib ]; then + COMPREPLY=( $( LC_ALL=C command ls -1 /var/cache/hrmib | sed -ne '/^'$cur'/p') ) + return + fi + -+ # refresh cache if writable -+ if [ /var/cache/rpmpkgs.txt -ot /var/lib/rpm/Packages -a -w /var/cache/rpmpkgs.txt ]; then ++ # refresh cache if writable. FHS location ++ if [ -w /var/cache/rpmpkgs.txt -a /var/cache/rpmpkgs.txt -ot /var/lib/rpm/Packages ]; then + # we grab the output to local variable to prevent possible race -+ local tmp=$(rpm -qa --nodigest --nosignature --qf '%{name}-%{version}-%{release}.%{arch}.rpm\n' | LC_ALL=C sort) ++ _rpm_nodigsig ++ local tmp=$(rpm -qa $nodig $nosig --qf '%{name}-%{version}-%{release}.%{arch}.rpm\n') + echo "$tmp" > /var/cache/rpmpkgs.txt + fi -- if [ -r /var/log/rpmpkgs -a \ -- /var/log/rpmpkgs -nt /var/lib/rpm/Packages ]; then -+ if [ -r /var/cache/rpmpkgs.txt -a /var/cache/rpmpkgs.txt -nt /var/lib/rpm/Packages ]; then + if [ -r /var/log/rpmpkgs -a \ + /var/log/rpmpkgs -nt /var/lib/rpm/Packages ]; then # using RHL 7.2 or later - this is quicker than querying the DB COMPREPLY=( $( sed -ne \ -- 's|^\('$cur'.*\)-[0-9a-zA-Z._]\+-[0-9a-z.@]\+.*\.rpm$|\1|p' \ -- /var/log/rpmpkgs ) ) +- 's|^\('$cur'[^[:space:]]*\)-[^[:space:]-]\+-[^[:space:]-]\+\.rpm$|\1|p' \ + 's|^\('$cur'.*\)\.rpm$|\1|p' \ -+ /var/cache/rpmpkgs.txt ) ) + /var/log/rpmpkgs ) ) else -- nodig="" -- nosig="" -- ver=$(rpm --version) -- ver=${ver##* } -- -- if [[ "$ver" > "4.0.4" ]]; then -- nodig="--nodigest" -- fi -- if [[ "$ver" > "4.0.99" ]]; then -- nosig="--nosignature" -- fi -- -- COMPREPLY=( $( rpm -qa $nodig $nosig | sed -ne \ -- 's|^\('$cur'.*\)-[0-9a-zA-Z._]\+-[0-9a-z.@]\+$|\1|p' ) ) -+ COMPREPLY=( $( rpm -qa --nodigest --nosignature --qf '%{name}-%{version}-%{release}.%{arch}\n' "$cur*" ) ) + _rpm_nodigsig +- COMPREPLY=( $( rpm -qa $nodig $nosig --qf='%{NAME} ' "$cur*" ) ) ++ COMPREPLY=( $( rpm -qa $nodig $nosig --qf '%{name}-%{version}-%{release}.%{arch}\n' "$cur*" ) ) fi }