diff options
Diffstat (limited to 'completions/pkgutil')
-rw-r--r-- | completions/pkgutil | 48 |
1 files changed, 24 insertions, 24 deletions
diff --git a/completions/pkgutil b/completions/pkgutil index febc2135..91d87480 100644 --- a/completions/pkgutil +++ b/completions/pkgutil @@ -22,74 +22,74 @@ _pkgutil() declare -a catalog_files=() local i=$cword - while [[ $((i--)) -gt 1 ]]; do - if [[ "${words[$i]}" == -@(t|-temp) ]]; then - local url="${words[$((i+1))]}" + while ((i-- > 1)); do + if [[ ${words[i]} == -@(t|-temp) ]]; then + local url="${words[i + 1]}" local catalog=$(_pkgutil_url2catalog "$url") catalog_files=("$catalog") - elif [[ "${words[$i]}" == --config ]]; then - configuration_files=( "$(dequote ${words[$((i+1))]})" ) - elif [[ "${words[$i]}" == -@([iurdacUS]|-install|-upgrade|-remove|-download|-available|-compare|-catalog|-stream) ]]; then - command="${words[$i]}" + elif [[ ${words[i]} == --config ]]; then + configuration_files=("$(dequote ${words[i + 1]})") + elif [[ ${words[i]} == -@([iurdacUS]|-install|-upgrade|-remove|-download|-available|-compare|-catalog|-stream) ]]; then + command="${words[i]}" fi done - if [[ "$prev" == -@([WPR]|-workdir|-pkgdir|-rootpath) ]]; then + if [[ $prev == -@([WPR]|-workdir|-pkgdir|-rootpath) ]]; then _filedir -d return fi - if [[ "$prev" == -@(o|-output|-config) ]]; then + if [[ $prev == -@(o|-output|-config) ]]; then _filedir return fi - if [[ "$prev" == -@(p|-param) ]]; then + if [[ $prev == -@(p|-param) ]]; then compopt -o nospace - COMPREPLY=( $(compgen -W "mirror: pkgaddopts: pkgrmopts: wgetopts: use_gpg: use_md5: pkgliststyle: maxpkglist: noncsw: stop_on_hook_soft_error: exclude_pattern: gpg_homedir: root_path: deptree_filter_common: show_current: catalog_not_cached: catalog_update:" -- $cur) ) + COMPREPLY=($(compgen -W "mirror: pkgaddopts: pkgrmopts: wgetopts: use_gpg: use_md5: pkgliststyle: maxpkglist: noncsw: stop_on_hook_soft_error: exclude_pattern: gpg_homedir: root_path: deptree_filter_common: show_current: catalog_not_cached: catalog_update:" -- $cur)) return fi - if [[ "$prev" == @(-T|--target) ]]; then + if [[ $prev == @(-T|--target) ]]; then # Work-around bash_completion issue where bash interprets a colon # as a separator, borrowed from maven completion code which borrowed # it from darcs completion code :) local colonprefixes=${cur%"${cur##*:}"} - COMPREPLY=( $(compgen -W "sparc:5.9 sparc:5.10 sparc:5.11 i386:5.9 i386:5.10 i386:5.11" -- $cur) ) + COMPREPLY=($(compgen -W "sparc:5.9 sparc:5.10 sparc:5.11 i386:5.9 i386:5.10 i386:5.11" -- $cur)) local i=${#COMPREPLY[*]} - while [ $((--i)) -ge 0 ]; do - COMPREPLY[$i]=${COMPREPLY[$i]#"$colonprefixes"} + while ((i-- > 0)); do + COMPREPLY[i]=${COMPREPLY[i]#"$colonprefixes"} done return fi - if [[ -n "$command" ]] && [[ ! "$cur" == -* ]]; then + if [[ -v command && $cur != -* ]]; then local mirrors mirror_url mirrors=$(awk -F= ' $1 ~ /^ *mirror *$/ { print $2 }' "${configuration_files[@]}") mirrors=${mirrors:-http://mirror.opencsw.org/opencsw/testing} for mirror_url in $mirrors; do local catalog=$(_pkgutil_url2catalog "$mirror_url") - catalog_files=( "${catalog_files[@]}" "$catalog" ) + catalog_files=("${catalog_files[@]}" "$catalog") done - if [[ "$command" == -@([dius]|-download|-install|-upgrade|-stream) ]]; then + if [[ $command == -@([dius]|-download|-install|-upgrade|-stream) ]]; then local packages_list=$(awk ' $0 ~ /BEGIN PGP SIGNATURE/ { exit } $1 ~ /^Hash:/ || $1 ~ /^ *(-|#|$)/ { next } { print $1 }' "${catalog_files[@]}") - COMPREPLY=( $(compgen -W "${packages_list}" -- $cur) ) + COMPREPLY=($(compgen -W "${packages_list}" -- $cur)) - elif [[ "$command" == @(-r|--remove) ]]; then - local packages_list=$(pkginfo | awk ' $2 ~ /^CSW/ { printf ("%s|",$2) }') + elif [[ $command == @(-r|--remove) ]]; then + local packages_list=$(pkginfo | awk ' $2 ~ /^CSW/ { printf ("%s|",$2) }') packages_list=${packages_list%|} packages_list=$(nawk " \$3 ~ /^$packages_list\$/ { print \$1 }" "${catalog_files[@]}") - COMPREPLY=( $(compgen -W "${packages_list}" -- $cur) ) + COMPREPLY=($(compgen -W "${packages_list}" -- $cur)) fi return fi local commands="-i --install -u --upgrade -r --remove -d --download -U --catalog -a --available --describe -c --compare -C --compare-diff -A --compare-avail -e --email -t --temp -x --exclude -W --workdir -P --pkgdir -R --rootpath --config -y --yes -f --force -n --nomod -N --nodeps -D --debug --trace -h --help -v --version -V --syscheck -l --list -L --listfile -F --findfile --deptree --extract -s --stream -o --output -T --target --single -p --param --parse --cleanup --catinfo" - COMPREPLY=( $(compgen -W "${commands}" -- $cur) ) + COMPREPLY=($(compgen -W "${commands}" -- $cur)) } && -complete -F _pkgutil pkgutil + complete -F _pkgutil pkgutil # ex: filetype=sh |