diff options
Diffstat (limited to 'completions/pkg-get')
-rw-r--r-- | completions/pkg-get | 34 |
1 files changed, 16 insertions, 18 deletions
diff --git a/completions/pkg-get b/completions/pkg-get index bf66fcc8..d5382eb2 100644 --- a/completions/pkg-get +++ b/completions/pkg-get @@ -2,8 +2,7 @@ # # Copyright 2006 Yann Rouillard <yann@opencsw.org> -_have pkg-get && -_pkg-get_get_catalog_file() +_pkg_get_get_catalog_file() { local url="$1" local catalog_file i conffile @@ -26,50 +25,49 @@ _pkg-get_get_catalog_file() echo "$catalog_file" } && -_pkg-get() +_pkg_get() { local cur prev file catalog_file url command COMPREPLY=() cur="${COMP_WORDS[COMP_CWORD]}" prev="${COMP_WORDS[COMP_CWORD-1]}" - if [[ "${prev}" = "-s" ]]; then + if [[ "${prev}" == "-s" ]]; then return 1 fi - i=${#COMP_WORDS[*]} + i=${#COMP_WORDS[*]} while [[ $i -gt 0 ]]; do i=$((i-1)) - if [[ "${COMP_WORDS[$i]}" = "-s" ]]; then + if [[ "${COMP_WORDS[$i]}" == -s ]]; then url="${COMP_WORDS[$((i+1))]}" fi - if [[ "${COMP_WORDS[$i]}" == @(available|-a|describe|-D|download|-d|install|-i|list|updatecatalog|-U|upgrade|-u) ]]; then + if [[ "${COMP_WORDS[$i]}" == @(-[aDdiUu]|available|describe|download|install|list|updatecatalog|upgrade) ]]; then command="${COMP_WORDS[$i]}" fi done if [[ -n "$command" ]]; then - if [[ "$command" == @(describe|-D|download|-d|install|-i) ]]; then - catalog_file=$(_pkg-get_get_catalog_file "$url") + if [[ "$command" == @(-[Ddi]|describe|download|install) ]]; then + catalog_file=$(_pkg_get_get_catalog_file "$url") if [[ -f $catalog_file ]]; then local packages_list=$(awk ' $0 ~ /BEGIN PGP SIGNATURE/ { exit } $1 ~ /^Hash:/ || $1 ~ /^ *(-|#|$)/ { next } { print $1 }' $catalog_file) COMPREPLY=( $(compgen -W "${packages_list}" -- ${cur}) ) fi fi - return 0 + return fi if [[ ${cur} == -* ]] ; then local opts="-c -d -D -f -i -l -s -S -u -U -v" COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) ) - return 0 - else - local commands="available describe download install list \ - updatecatalog upgrade" - COMPREPLY=( $(compgen -W "${commands}" -- ${cur}) ) - return 0 + return fi + + local commands="available describe download install list \ + updatecatalog upgrade" + COMPREPLY=( $(compgen -W "${commands}" -- ${cur}) ) } && -complete -F _pkg-get pkg-get +complete -F _pkg_get pkg-get -# ex: ts=4 sw=4 et filetype=sh +# ex: filetype=sh |