]> git.pld-linux.org Git - packages/bash-completion.git/blobdiff - bash-completion-rpm-cache.patch
- -mplayer.patch is useless there already is fl[iv]|FL[IV] (hanska)
[packages/bash-completion.git] / bash-completion-rpm-cache.patch
index 7f8190e8915a54504896d92ba7edcc1bdee1429e..ef998619199757eee1f20cecdc5a9324049ffce1 100644 (file)
@@ -1,42 +1,43 @@
---- bash_completion/bash_completion~   2006-03-01 18:20:18.000000000 +0200
-+++ bash_completion/bash_completion    2008-01-08 02:50:17.000000000 +0200
-@@ -1732,29 +1732,20 @@
+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 <glen@delfi.ee>
+
+--- 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
-+      # refresh cache if writable
-+      if [ /var/cache/rpmpkgs.txt -ot /var/lib/rpm/Packages -a -w /var/cache/rpmpkgs.txt ]; then
+-      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. 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
  }
  
This page took 0.11025 seconds and 4 git commands to generate.