Use _init_completion() in pkgtools, rpm2tgz, sbopkg, slackpkg, slapt

This commit is contained in:
Igor Murzov 2011-04-22 03:03:22 +04:00
parent 0af9122381
commit d3f7c16942
5 changed files with 30 additions and 48 deletions

View File

@ -6,8 +6,8 @@
have pkgtool && have pkgtool &&
_pkgtool() _pkgtool()
{ {
COMPREPLY=() local cur prev words cword
local cur="${COMP_WORDS[COMP_CWORD]}" _init_completion || return
if [[ "$cur" == -* ]]; then if [[ "$cur" == -* ]]; then
COMPREPLY=( $( compgen -W '--sets --ignore-tagfiles --tagfile \ COMPREPLY=( $( compgen -W '--sets --ignore-tagfiles --tagfile \
--source-mounted --source_dir --target_dir --source_device' \ --source-mounted --source_dir --target_dir --source_device' \
@ -15,9 +15,7 @@ _pkgtool()
return 0 return 0
fi fi
local prev=${COMP_WORDS[COMP_CWORD-1]} case "$prev" in
case $prev in
--source_dir|--target_dir) --source_dir|--target_dir)
_filedir -d _filedir -d
return 0 return 0
@ -41,8 +39,8 @@ complete -F _pkgtool pkgtool
have removepkg && have removepkg &&
_removepkg() _removepkg()
{ {
COMPREPLY=() local cur prev words cword
local cur=`_get_cword` _init_completion || return
if [[ "$cur" == -* ]]; then if [[ "$cur" == -* ]]; then
COMPREPLY=( $( compgen -W '-copy -keep -preserve -warn' \ COMPREPLY=( $( compgen -W '-copy -keep -preserve -warn' \
-- "$cur" ) ) -- "$cur" ) )
@ -56,8 +54,8 @@ complete -F _removepkg removepkg
have upgradepkg && have upgradepkg &&
_upgradepkg() _upgradepkg()
{ {
COMPREPLY=() local cur prev words cword
local cur=`_get_cword` _init_completion || return
if [[ "$cur" == -* ]]; then if [[ "$cur" == -* ]]; then
COMPREPLY=( $( compgen -W '--dry-run --install-new --reinstall \ COMPREPLY=( $( compgen -W '--dry-run --install-new --reinstall \
--verbose' -- "$cur") ) --verbose' -- "$cur") )
@ -70,17 +68,15 @@ _upgradepkg()
have installpkg && have installpkg &&
_installpkg() _installpkg()
{ {
COMPREPLY=() local cur prev words cword
local cur=`_get_cword` _init_completion || return
if [[ "$cur" == -* ]]; then if [[ "$cur" == -* ]]; then
COMPREPLY=( $( compgen -W '--warn --md5sum --root --infobox --terse \ COMPREPLY=( $( compgen -W '--warn --md5sum --root --infobox --terse \
--menu --ask --priority --tagfile' -- "$cur") ) --menu --ask --priority --tagfile' -- "$cur") )
return 0 return 0
fi fi
local prev=`_get_pword` case "$prev" in
case $prev in
--root) --root)
_filedir -d _filedir -d
return 0 return 0
@ -101,17 +97,15 @@ _installpkg()
have makepkg && have makepkg &&
_makepkg() _makepkg()
{ {
COMPREPLY=() local cur prev words cword
local cur=`_get_cword` _init_completion || return
if [[ "$cur" == -* ]]; then if [[ "$cur" == -* ]]; then
COMPREPLY=( $( compgen -W '-l --linkadd -p --prepend \ COMPREPLY=( $( compgen -W '-l --linkadd -p --prepend \
-c --chown' -- "$cur") ) -c --chown' -- "$cur") )
return 0 return 0
fi fi
local prev=`_get_pword` case "$prev" in
case $prev in
-l|--linkadd|-c|--chown) -l|--linkadd|-c|--chown)
COMPREPLY=( $( compgen -W 'y n' -- "$cur" ) ) COMPREPLY=( $( compgen -W 'y n' -- "$cur" ) )
return 0 return 0

View File

@ -4,8 +4,9 @@ have rpm2tgz || return
_rpm2tgz() _rpm2tgz()
{ {
COMPREPLY=() local cur prev words cword
local cur="${COMP_WORDS[COMP_CWORD]}" _init_completion || return
if [[ "$cur" == -* ]]; then if [[ "$cur" == -* ]]; then
COMPREPLY=( $( compgen -W '-s -S -n -r -d -c' -- "$cur" ) ) COMPREPLY=( $( compgen -W '-s -S -n -r -d -c' -- "$cur" ) )
return 0 return 0

View File

@ -4,9 +4,8 @@ have sbopkg || return
_sbopkg() _sbopkg()
{ {
COMPREPLY=() local cur prev words cword
local cur prev _init_completion || return
_get_comp_words_by_ref cur prev
if [[ "$cur" == -* ]]; then if [[ "$cur" == -* ]]; then
COMPREPLY=( $( compgen -W '-b -c -d -e -f -g -h -i -k -l \ COMPREPLY=( $( compgen -W '-b -c -d -e -f -g -h -i -k -l \
@ -14,7 +13,7 @@ _sbopkg()
return 0 return 0
fi fi
case $prev in case "$prev" in
-e) -e)
COMPREPLY=( $( compgen -W 'ask continue stop' -- "$cur" ) ) COMPREPLY=( $( compgen -W 'ask continue stop' -- "$cur" ) )
return 0 return 0
@ -40,8 +39,6 @@ _sbopkg()
esac esac
local config="/etc/sbopkg/sbopkg.conf" local config="/etc/sbopkg/sbopkg.conf"
local words
_get_comp_words_by_ref words
for (( i=${#words[@]}-1; i>0; i-- )); do for (( i=${#words[@]}-1; i>0; i-- )); do
if [[ "${words[i]}" == -f ]]; then if [[ "${words[i]}" == -f ]]; then

View File

@ -4,9 +4,8 @@ have slackpkg || return
_slackpkg() _slackpkg()
{ {
COMPREPLY=() local cur prev words cword
local cur _init_completion -n = || return
_get_comp_words_by_ref cur
# based on `grep '\-.*\=.*)' /usr/sbin/slackpkg | cut -f1 -d\)` # based on `grep '\-.*\=.*)' /usr/sbin/slackpkg | cut -f1 -d\)`
if [[ "$cur" == -* ]]; then if [[ "$cur" == -* ]]; then
@ -36,9 +35,7 @@ _slackpkg()
fi fi
. "$config" . "$config"
local action words local action
_get_comp_words_by_ref -n "=" words
for (( i=1; i<${#words[@]}; i++ )); do for (( i=1; i<${#words[@]}; i++ )); do
if [[ "${words[i]}" != -* ]]; then if [[ "${words[i]}" != -* ]]; then
action="${words[i]}" action="${words[i]}"
@ -46,7 +43,7 @@ _slackpkg()
fi fi
done done
case $action in case "$action" in
generate-template|search|file-search) generate-template|search|file-search)
# argument required but no completions available # argument required but no completions available
return 0 return 0

View File

@ -3,9 +3,8 @@
have slapt-get && have slapt-get &&
_slapt_get() _slapt_get()
{ {
COMPREPLY=() local cur prev words cword
local cur prev _init_completion || return
_get_comp_words_by_ref cur prev
if [[ "$cur" == -* ]]; then if [[ "$cur" == -* ]]; then
COMPREPLY=( $( compgen -W '--download-only -d --simulate -s \ COMPREPLY=( $( compgen -W '--download-only -d --simulate -s \
@ -19,7 +18,7 @@ _slapt_get()
return 0 return 0
fi fi
case $prev in case "$prev" in
--config|-c) --config|-c)
_filedir _filedir
return 0 return 0
@ -30,9 +29,7 @@ _slapt_get()
;; ;;
esac esac
local words t local t
_get_comp_words_by_ref words
# search for last action (--install|--install-set|--remove|--show|--filelist) # search for last action (--install|--install-set|--remove|--show|--filelist)
for (( i=${#words[@]}-1; i>0; i-- )); do for (( i=${#words[@]}-1; i>0; i-- )); do
if [[ ${words[i]} == -@(i|-install|-show) ]]; then if [[ ${words[i]} == -@(i|-install|-show) ]]; then
@ -71,9 +68,8 @@ _slapt_get()
have slapt-src && have slapt-src &&
_slapt_src() _slapt_src()
{ {
COMPREPLY=() local cur prev words cword
local cur prev _init_completion || return
_get_comp_words_by_ref cur prev
if [[ "$cur" == -* ]]; then if [[ "$cur" == -* ]]; then
COMPREPLY=( $( compgen -W '--update -u --list -l --clean -e \ COMPREPLY=( $( compgen -W '--update -u --list -l --clean -e \
@ -83,7 +79,7 @@ _slapt_src()
return 0 return 0
fi fi
case $prev in case "$prev" in
--config|-c) --config|-c)
_filedir _filedir
return 0 return 0
@ -94,9 +90,6 @@ _slapt_src()
;; ;;
esac esac
local words
_get_comp_words_by_ref words
local t local t
# search for last action (-i|-w|-b|-f) # search for last action (-i|-w|-b|-f)
for (( i=${#words[@]}-1; i>0; i-- )); do for (( i=${#words[@]}-1; i>0; i-- )); do