about summary refs log tree commit diff
path: root/Completion
diff options
context:
space:
mode:
Diffstat (limited to 'Completion')
-rw-r--r--Completion/Debian/Command/_update-alternatives20
1 files changed, 13 insertions, 7 deletions
diff --git a/Completion/Debian/Command/_update-alternatives b/Completion/Debian/Command/_update-alternatives
index 3d85f6118..eaeb300b8 100644
--- a/Completion/Debian/Command/_update-alternatives
+++ b/Completion/Debian/Command/_update-alternatives
@@ -1,8 +1,14 @@
 #compdef update-alternatives
 
-local curcontext="$curcontext" context state line expl ret
+local curcontext="$curcontext" context state line expl ret alterdir
 typeset -A opt_args
 
+if [[ -d /var/lib/dpkg/alternatives ]];then
+    alterdir=/var/lib/dpkg/alternatives
+elif [[ -d /var/lib/rpm/alternatives/ ]];then
+    alterdir=/var/lib/rpm/alternatives
+fi
+
 _arguments -C '--verbose' \
            '--quiet' \
            '--test' \
@@ -12,9 +18,9 @@ _arguments -C '--verbose' \
            '--admindir:admindir:_files -/' \
     '--install:*::alt:= ->install' \
     '--remove:*::alt:= ->remove' \
-    '--auto:name:_files -W /var/lib/dpkg/alternatives' \
-    '--display:name:_files -W /var/lib/dpkg/alternatives' \
-    '--config:name:_files -W /var/lib/dpkg/alternatives' && return 0
+    '--auto:name:_files -W $alterdir' \
+    '--display:name:_files -W $alterdir' \
+    '--config:name:_files -W $alterdir' && return 0
 
 while true; do
 case "$state" in
@@ -22,7 +28,7 @@ case "$state" in
         _call_function ret _update_alternatives_$state && return ret
 	state=
 	_arguments -C '1:link:_files' \
-                   '2:name:_files -W /var/lib/dpkg/alternatives' \
+                   '2:name:_files -W $alterdir' \
                    '3:path:_files' \
                    '--slave:*::more:= ->islave' && return 0
         [[ -z $state ]] && return 1
@@ -31,7 +37,7 @@ case "$state" in
 	install)
         _call_function ret _update_alternatives_$state && return ret
 	_arguments -C '1:link:_files' \
-                   '2:name:_files -W /var/lib/dpkg/alternatives' \
+                   '2:name:_files -W $alterdir' \
                    '3:path:_files' \
                    '4:priority:' \
                    '--slave:*::slave:= ->islave' && return 0
@@ -41,7 +47,7 @@ case "$state" in
 	remove)
         _call_function ret _update_alternatives_$state && return ret
 	_arguments \
-                   '1:name:_files -W /var/lib/dpkg/alternatives' \
+                   '1:name:_files -W $alterdir' \
                    '2:path:_files' && return 0
         return 1
 	;;