summaryrefslogtreecommitdiff
path: root/completions/pkg-get
diff options
context:
space:
mode:
Diffstat (limited to 'completions/pkg-get')
-rw-r--r--completions/pkg-get72
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