]>
Commit | Line | Data |
---|---|---|
628b594d ER |
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 | ||
a8015381 ER |
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 @@ | |
8369e198 ER |
10 | # |
11 | _rpm_installed_packages() | |
24e31c9e | 12 | { |
530fe0ad ER |
13 | - local ver nodig="$1" nosig="$2" |
14 | + local nodig="$1" nosig="$2" | |
a8015381 | 15 | + |
d828dd63 ER |
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 | + | |
a8015381 | 22 | + # refresh cache if writable. FHS location |
530fe0ad | 23 | + if [ -w /var/cache/rpmpkgs.txt -a /var/cache/rpmpkgs.txt -ot /var/lib/rpm/Packages ]; then |
24e31c9e | 24 | + # we grab the output to local variable to prevent possible race |
530fe0ad ER |
25 | + _rpm_nodigsig |
26 | + local tmp=$(rpm -qa $nodig $nosig --qf '%{name}-%{version}-%{release}.%{arch}.rpm\n') | |
27 | + echo "$tmp" > /var/cache/rpmpkgs.txt | |
24e31c9e | 28 | + fi |
a8015381 ER |
29 | |
30 | if [ -r /var/log/rpmpkgs -a \ | |
31 | /var/log/rpmpkgs -nt /var/lib/rpm/Packages ]; then | |
24e31c9e ER |
32 | # using RHL 7.2 or later - this is quicker than querying the DB |
33 | COMPREPLY=( $( sed -ne \ | |
530fe0ad | 34 | - 's|^\('$cur'[^[:space:]]*\)-[^[:space:]-]\+-[^[:space:]-]\+\.rpm$|\1|p' \ |
8369e198 | 35 | + 's|^\('$cur'.*\)\.rpm$|\1|p' \ |
a8015381 | 36 | /var/log/rpmpkgs ) ) |
8369e198 | 37 | else |
530fe0ad ER |
38 | _rpm_nodigsig |
39 | - COMPREPLY=( $( rpm -qa $nodig $nosig --qf='%{NAME} ' "$cur*" ) ) | |
a8015381 | 40 | + COMPREPLY=( $( rpm -qa $nodig $nosig --qf '%{name}-%{version}-%{release}.%{arch}\n' "$cur*" ) ) |
8369e198 ER |
41 | fi |
42 | } | |
43 |