]>
Commit | Line | Data |
---|---|---|
8369e198 ER |
1 | --- bash_completion/bash_completion~ 2006-03-01 18:20:18.000000000 +0200 |
2 | +++ bash_completion/bash_completion 2008-01-08 02:50:17.000000000 +0200 | |
3 | @@ -1732,29 +1732,20 @@ | |
4 | # | |
5 | _rpm_installed_packages() | |
24e31c9e | 6 | { |
8369e198 | 7 | - local ver nodig nosig |
24e31c9e | 8 | + # refresh cache if writable |
8369e198 | 9 | + if [ /var/cache/rpmpkgs.txt -ot /var/lib/rpm/Packages -a -w /var/cache/rpmpkgs.txt ]; then |
24e31c9e | 10 | + # we grab the output to local variable to prevent possible race |
8369e198 ER |
11 | + local tmp=$(rpm -qa --nodigest --nosignature --qf '%{name}-%{version}-%{release}.%{arch}.rpm\n' | LC_ALL=C sort) |
12 | + echo "$tmp" > /var/cache/rpmpkgs.txt | |
24e31c9e | 13 | + fi |
8369e198 ER |
14 | |
15 | - if [ -r /var/log/rpmpkgs -a \ | |
16 | - /var/log/rpmpkgs -nt /var/lib/rpm/Packages ]; then | |
17 | + if [ -r /var/cache/rpmpkgs.txt -a /var/cache/rpmpkgs.txt -nt /var/lib/rpm/Packages ]; then | |
24e31c9e ER |
18 | # using RHL 7.2 or later - this is quicker than querying the DB |
19 | COMPREPLY=( $( sed -ne \ | |
8369e198 ER |
20 | - 's|^\('$cur'.*\)-[0-9a-zA-Z._]\+-[0-9a-z.@]\+.*\.rpm$|\1|p' \ |
21 | - /var/log/rpmpkgs ) ) | |
22 | + 's|^\('$cur'.*\)\.rpm$|\1|p' \ | |
23 | + /var/cache/rpmpkgs.txt ) ) | |
24 | else | |
25 | - nodig="" | |
26 | - nosig="" | |
27 | - ver=$(rpm --version) | |
28 | - ver=${ver##* } | |
29 | - | |
30 | - if [[ "$ver" > "4.0.4" ]]; then | |
31 | - nodig="--nodigest" | |
32 | - fi | |
33 | - if [[ "$ver" > "4.0.99" ]]; then | |
34 | - nosig="--nosignature" | |
35 | - fi | |
36 | - | |
37 | - COMPREPLY=( $( rpm -qa $nodig $nosig | sed -ne \ | |
38 | - 's|^\('$cur'.*\)-[0-9a-zA-Z._]\+-[0-9a-z.@]\+$|\1|p' ) ) | |
39 | + COMPREPLY=( $( rpm -qa --nodigest --nosignature --qf '%{name}-%{version}-%{release}.%{arch}\n' "$cur*" ) ) | |
40 | fi | |
41 | } | |
42 |