From 0bc58b66a4850cdb8458a86c3d9a2fc81de82aa3 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 28 Apr 2024 11:14:42 +0200 Subject: Adding upstream version 1:2.11. Signed-off-by: Daniel Baumann --- completions/pkg-get | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 completions/pkg-get (limited to 'completions/pkg-get') diff --git a/completions/pkg-get b/completions/pkg-get new file mode 100644 index 0000000..72bd0a0 --- /dev/null +++ b/completions/pkg-get @@ -0,0 +1,72 @@ +# pkg-get.completion completion -*- shell-script -*- +# +# Copyright 2006 Yann Rouillard + +_pkg_get_get_catalog_file() +{ + local url="$1" + local catalog_file i conffile + + for file in /etc/opt/csw/pkg-get.conf /opt/csw/etc/pkg-get.conf /etc/pkg-get.conf; do + if [[ -f $file ]]; then + conffile="$file" + break + fi + done + conffile="${conffile:-/opt/csw/etc/pkg-get.conf}" + + if [[ -z $url ]]; then + url=$(awk -F= ' $1=="url" { print $2 }' $conffile) + fi + + catalog_file="${url##*//}" + catalog_file="${catalog_file%%/*}" + catalog_file="/var/pkg-get/catalog-$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 + + 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 + + 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 \ + updatecatalog upgrade" + COMPREPLY=($(compgen -W "${commands}" -- ${cur})) + } && + complete -F _pkg_get pkg-get + +# ex: filetype=sh -- cgit v1.2.3