diff options
Diffstat (limited to 'completions/pkg-get')
-rw-r--r-- | completions/pkg-get | 72 |
1 files changed, 36 insertions, 36 deletions
diff --git a/completions/pkg-get b/completions/pkg-get index 2f251338..72bd0a05 100644 --- a/completions/pkg-get +++ b/completions/pkg-get @@ -15,7 +15,7 @@ _pkg_get_get_catalog_file() done conffile="${conffile:-/opt/csw/etc/pkg-get.conf}" - if [[ -z "$url" ]]; then + if [[ -z $url ]]; then url=$(awk -F= ' $1=="url" { print $2 }' $conffile) fi @@ -25,48 +25,48 @@ _pkg_get_get_catalog_file() echo "$catalog_file" } && -_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 - return 1 - fi + _pkg_get() + { + local cur prev file catalog_file url command + COMPREPLY=() + cur="${COMP_WORDS[COMP_CWORD]}" + prev="${COMP_WORDS[COMP_CWORD - 1]}" - local i=${#COMP_WORDS[*]} - while [[ $i -gt 0 ]]; do - if [[ "${COMP_WORDS[--i]}" == -s ]]; then - url="${COMP_WORDS[$((i+1))]}" + if [[ ${prev} == "-s" ]]; then + return 1 fi - 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" == @(-[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}) ) + local i=${#COMP_WORDS[*]} + while ((i > 0)); do + if [[ ${COMP_WORDS[--i]} == -s ]]; then + url="${COMP_WORDS[i + 1]}" + fi + if [[ ${COMP_WORDS[i]} == @(-[aDdiUu]|available|describe|download|install|list|updatecatalog|upgrade) ]]; then + command="${COMP_WORDS[i]}" + fi + done + + if [[ -v command ]]; then + 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 fi - return - fi - if [[ ${cur} == -* ]]; then - local opts="-c -d -D -f -i -l -s -S -u -U -v" - COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) ) - return - fi + if [[ ${cur} == -* ]]; then + local opts="-c -d -D -f -i -l -s -S -u -U -v" + COMPREPLY=($(compgen -W "${opts}" -- ${cur})) + return + fi - local commands="available describe download install list \ + local commands="available describe download install list \ updatecatalog upgrade" - COMPREPLY=( $(compgen -W "${commands}" -- ${cur}) ) -} && -complete -F _pkg_get pkg-get + COMPREPLY=($(compgen -W "${commands}" -- ${cur})) + } && + complete -F _pkg_get pkg-get # ex: filetype=sh |