split update-alternatives completion
This commit is contained in:
parent
4a71a1c175
commit
872b8befe8
@ -96,6 +96,7 @@ bashcomp_DATA = contrib/ant \
|
|||||||
contrib/tar \
|
contrib/tar \
|
||||||
contrib/unace \
|
contrib/unace \
|
||||||
contrib/unrar \
|
contrib/unrar \
|
||||||
|
contrib/update-alternatives \
|
||||||
contrib/vncviewer \
|
contrib/vncviewer \
|
||||||
contrib/wodim \
|
contrib/wodim \
|
||||||
contrib/wvdial \
|
contrib/wvdial \
|
||||||
|
@ -3850,98 +3850,6 @@ _querybts()
|
|||||||
} &&
|
} &&
|
||||||
complete -F _querybts $filenames querybts
|
complete -F _querybts $filenames querybts
|
||||||
|
|
||||||
# update-alternatives completion
|
|
||||||
#
|
|
||||||
have update-alternatives && {
|
|
||||||
_installed_alternatives()
|
|
||||||
{
|
|
||||||
local admindir
|
|
||||||
# find the admin dir
|
|
||||||
for i in alternatives dpkg/alternatives rpm/alternatives; do
|
|
||||||
[ -d /var/lib/$i ] && admindir=/var/lib/$i && break
|
|
||||||
done
|
|
||||||
for (( i=1; i < COMP_CWORD; i++ )); do
|
|
||||||
if [[ "${COMP_WORDS[i]}" == --admindir ]]; then
|
|
||||||
admindir=${COMP_WORDS[i+1]}
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
COMPREPLY=( $( compgen -W '$( command ls $admindir )' -- $cur ) )
|
|
||||||
}
|
|
||||||
|
|
||||||
_update_alternatives()
|
|
||||||
{
|
|
||||||
local cur prev mode args i
|
|
||||||
|
|
||||||
COMPREPLY=()
|
|
||||||
cur=`_get_cword`
|
|
||||||
prev=${COMP_WORDS[COMP_CWORD-1]}
|
|
||||||
|
|
||||||
case "$prev" in
|
|
||||||
--@(altdir|admindir))
|
|
||||||
_filedir -d
|
|
||||||
return 0
|
|
||||||
;;
|
|
||||||
--@(help|version))
|
|
||||||
return 0
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
# find which mode to use and how many real args used so far
|
|
||||||
for (( i=1; i < COMP_CWORD; i++ )); do
|
|
||||||
if [[ "${COMP_WORDS[i]}" == --@(install|remove|auto|display|config|remove-all) ]]; then
|
|
||||||
mode=${COMP_WORDS[i]}
|
|
||||||
args=$(($COMP_CWORD - i))
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
case $mode in
|
|
||||||
--install)
|
|
||||||
case $args in
|
|
||||||
1)
|
|
||||||
_filedir
|
|
||||||
;;
|
|
||||||
2)
|
|
||||||
_installed_alternatives
|
|
||||||
;;
|
|
||||||
3)
|
|
||||||
_filedir
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
--remove)
|
|
||||||
case $args in
|
|
||||||
1)
|
|
||||||
_installed_alternatives
|
|
||||||
;;
|
|
||||||
2)
|
|
||||||
_filedir
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
--auto)
|
|
||||||
_installed_alternatives
|
|
||||||
;;
|
|
||||||
--remove-all)
|
|
||||||
_installed_alternatives
|
|
||||||
;;
|
|
||||||
--display)
|
|
||||||
_installed_alternatives
|
|
||||||
;;
|
|
||||||
--config)
|
|
||||||
_installed_alternatives
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
COMPREPLY=( $( compgen -W '--verbose --quiet --help --version \
|
|
||||||
--altdir --admindir' -- $cur ) \
|
|
||||||
$( compgen -W '--install --remove --auto --display \
|
|
||||||
--config' -- $cur ) )
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
complete -F _update_alternatives update-alternatives alternatives
|
|
||||||
}
|
|
||||||
|
|
||||||
# lilo(8) completion
|
# lilo(8) completion
|
||||||
#
|
#
|
||||||
have lilo && {
|
have lilo && {
|
||||||
|
94
contrib/update-alternatives
Normal file
94
contrib/update-alternatives
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
# -*- mode: shell-script; sh-basic-offset: 8; indent-tabs-mode: t -*-
|
||||||
|
# ex: ts=8 sw=8 noet filetype=sh
|
||||||
|
#
|
||||||
|
# bash completion for update-alternatives
|
||||||
|
|
||||||
|
have update-alternatives && {
|
||||||
|
_installed_alternatives()
|
||||||
|
{
|
||||||
|
local admindir
|
||||||
|
# find the admin dir
|
||||||
|
for i in alternatives dpkg/alternatives rpm/alternatives; do
|
||||||
|
[ -d /var/lib/$i ] && admindir=/var/lib/$i && break
|
||||||
|
done
|
||||||
|
for (( i=1; i < COMP_CWORD; i++ )); do
|
||||||
|
if [[ "${COMP_WORDS[i]}" == --admindir ]]; then
|
||||||
|
admindir=${COMP_WORDS[i+1]}
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
COMPREPLY=( $( compgen -W '$( command ls $admindir )' -- $cur ) )
|
||||||
|
}
|
||||||
|
|
||||||
|
_update_alternatives()
|
||||||
|
{
|
||||||
|
local cur prev mode args i
|
||||||
|
|
||||||
|
COMPREPLY=()
|
||||||
|
cur=`_get_cword`
|
||||||
|
prev=${COMP_WORDS[COMP_CWORD-1]}
|
||||||
|
|
||||||
|
case "$prev" in
|
||||||
|
--@(altdir|admindir))
|
||||||
|
_filedir -d
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
--@(help|version))
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# find which mode to use and how many real args used so far
|
||||||
|
for (( i=1; i < COMP_CWORD; i++ )); do
|
||||||
|
if [[ "${COMP_WORDS[i]}" == --@(install|remove|auto|display|config|remove-all) ]]; then
|
||||||
|
mode=${COMP_WORDS[i]}
|
||||||
|
args=$(($COMP_CWORD - i))
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
case $mode in
|
||||||
|
--install)
|
||||||
|
case $args in
|
||||||
|
1)
|
||||||
|
_filedir
|
||||||
|
;;
|
||||||
|
2)
|
||||||
|
_installed_alternatives
|
||||||
|
;;
|
||||||
|
3)
|
||||||
|
_filedir
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
--remove)
|
||||||
|
case $args in
|
||||||
|
1)
|
||||||
|
_installed_alternatives
|
||||||
|
;;
|
||||||
|
2)
|
||||||
|
_filedir
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
--auto)
|
||||||
|
_installed_alternatives
|
||||||
|
;;
|
||||||
|
--remove-all)
|
||||||
|
_installed_alternatives
|
||||||
|
;;
|
||||||
|
--display)
|
||||||
|
_installed_alternatives
|
||||||
|
;;
|
||||||
|
--config)
|
||||||
|
_installed_alternatives
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
COMPREPLY=( $( compgen -W '--verbose --quiet --help --version \
|
||||||
|
--altdir --admindir' -- $cur ) \
|
||||||
|
$( compgen -W '--install --remove --auto --display \
|
||||||
|
--config' -- $cur ) )
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
complete -F _update_alternatives update-alternatives alternatives
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user