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
5 Signed-off-by: Elan Ruusamäe <glen@delfi.ee>
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
11 _rpm_installed_packages()
13 - local ver nodig="$1" nosig="$2"
14 + local nodig="$1" nosig="$2"
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') )
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
26 + local tmp=$(rpm -qa $nodig $nosig --qf '%{name}-%{version}-%{release}.%{arch}.rpm\n')
27 + echo "$tmp" > /var/log/rpmpkgs
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' \
39 - COMPREPLY=( $( rpm -qa $nodig $nosig --qf='%{NAME} ' "$cur*" ) )
40 + COMPREPLY=( $( rpm -qa $nodig $nosig --qf '%{name}-%{version}-%{release}.%{arch}\n' "$cur*" ) )