mirror of
https://github.com/Gator96100/ProxSpace.git
synced 2025-01-24 19:52:58 -08:00
73 lines
2.2 KiB
Bash
73 lines
2.2 KiB
Bash
# pkg-get.completion completion -*- shell-script -*-
|
|
#
|
|
# Copyright 2006 Yann Rouillard <yann@opencsw.org>
|
|
|
|
_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
|