]> git.pld-linux.org Git - packages/bash-completion.git/blob - bash-completion-rpm-cache.patch
99f2a7f445327b05bfe12d8b85af2d5de762ba44
[packages/bash-completion.git] / bash-completion-rpm-cache.patch
1 support rpm (jbj rpm 4.4.7+) hrmib exports for rpm -qa filter (via %_hrmib_path /var/cache/hrmib)
2 add version+release+arch to installed packages filter
3
4 --
5 Signed-off-by: Elan Ruusamäe <glen@delfi.ee>
6
7 --- bash-completion/contrib/rpm~        2009-07-21 06:28:45.000000000 +0300
8 +++ bash-completion/contrib/rpm 2009-07-21 06:37:08.381279143 +0300
9 @@ -6,17 +6,31 @@
10  #
11  _rpm_installed_packages()
12  {
13 -       local ver nodig="$1" nosig="$2"
14 +       local nodig="$1" nosig="$2"
15 +
16 +       # if rpm (4.4.7+) is configured to export it's rpmdb to /var/cache/hrmib (%_hrmib_path)
17 +       if [ -d /var/cache/hrmib -a -r /var/cache/hrmib ]; then
18 +               COMPREPLY=( $( LC_ALL=C command ls -1 /var/cache/hrmib | sed -ne '/^'$cur'/p') )
19 +               return
20 +       fi
21 +
22 +       # refresh cache if writable.
23 +       if [ -w /var/log/rpmpkgs -a /var/log/rpmpkgs -ot /var/lib/rpm/Packages ]; then
24 +               # we grab the output to local variable to prevent possible race
25 +               _rpm_nodigsig
26 +               local tmp=$(rpm -qa $nodig $nosig --qf '%{name}-%{version}-%{release}.%{arch}.rpm\n')
27 +               echo "$tmp" > /var/log/rpmpkgs
28 +       fi
29  
30         if [ -r /var/log/rpmpkgs -a \
31                 /var/log/rpmpkgs -nt /var/lib/rpm/Packages ]; then
32                 # using RHL 7.2 or later - this is quicker than querying the DB
33                 COMPREPLY=( $( sed -ne \
34 -               's|^\('$cur'[^[:space:]]*\)-[^[:space:]-]\+-[^[:space:]-]\+\.rpm$|\1|p' \
35 +               's|^\('$cur'.*\)\.rpm$|\1|p' \
36                                 /var/log/rpmpkgs ) )
37         else
38                 _rpm_nodigsig
39 -               COMPREPLY=( $( rpm -qa $nodig $nosig --qf='%{NAME} ' "$cur*" ) )
40 +               COMPREPLY=( $( rpm -qa $nodig $nosig --qf '%{name}-%{version}-%{release}.%{arch}\n' "$cur*" ) )
41         fi
42  }
43  
This page took 0.028284 seconds and 2 git commands to generate.