]> TLD Linux GIT Repositories - packages/bash-completion.git/blobdiff - bash-completion-rpm-cache.patch
- merged 2.11 from PLD
[packages/bash-completion.git] / bash-completion-rpm-cache.patch
index 9c9d4014e2203267c5a603b1c2bde00cd9d1e8b7..965b938d4ebd217c43987575d720318a6d972cc1 100644 (file)
@@ -1,22 +1,24 @@
-Support rpm (jbj rpm 4.4.7+) hrmib exports for rpm -qa filter (via %_hrmib_path /var/cache/hrmib)
-
-Not accepted upstream.
-
---
-Signed-off-by: Elan Ruusamäe <glen@delfi.ee>
-
---- bash-completion-2.0/completions/rpm.orig   2012-01-07 23:44:41.000000000 +0100
-+++ bash-completion-2.0/completions/rpm        2012-07-28 07:21:12.033708931 +0200
-@@ -4,6 +4,12 @@
+--- bash-completion-2.11/completions/rpm.orig  2020-07-25 13:49:49.000000000 +0200
++++ bash-completion-2.11/completions/rpm       2021-11-17 00:01:41.257388895 +0100
+@@ -5,17 +5,16 @@
  _rpm_installed_packages()
  {
-+    # 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
-+
      if [[ -r /var/log/rpmpkgs && \
-         /var/log/rpmpkgs -nt /var/lib/rpm/Packages ]]; then
-         # using RHL 7.2 or later - this is quicker than querying the DB
+-        /var/log/rpmpkgs -nt /var/lib/rpm/Packages ]]; then
+-        # using RHL 7.2 or later - this is quicker than querying the DB
+-        COMPREPLY=($(compgen -W "$(command sed -ne \
+-            's|^\([^[:space:]]\{1,\}\)-[^[:space:]-]\{1,\}-[^[:space:]-]\{1,\}\.rpm$|\1|p' \
++        /var/log/rpmpkgs -nt /var/lib/rpm/rpmdb.sqlite ]]; then
++        # simple list generated by 'rpm -qa' command
++        COMPREPLY=($(compgen -W "$(command cat -ne \
+             /var/log/rpmpkgs)" -- "$cur"))
+     elif type rpmqpack &>/dev/null; then
+         # SUSE's rpmqpack is faster than rpm -qa
+         COMPREPLY=($(compgen -W '$(rpmqpack)' -- "$cur"))
+     else
+         COMPREPLY=($(${1:-rpm} -qa --nodigest --nosignature \
+-            --queryformat='%{NAME} ' "$cur*" 2>/dev/null))
++            --queryformat='%{NAME}-%{VERSION}-%{RELEASE}\n' 2>/dev/null | while read x ; do [[ "$x" == "$cur"* ]] && echo $x ; done))
+     fi
+ }