/
githubmirror
/
bash-completion
Обзор
Документация
Войти
/
githubmirror
/
bash-completion
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
completions-core/pkg-get.bash
70 строк
2 KB
Koichi Murase
fix(pkg-get): avoid double expansions
30 июн 2026, 00:44
30 июн 2026, 00:44
fb5e32c
Код
Авторство
О чём код?
# pkg-get.completion completion # # Copyright 2006 Yann Rouillard <yann@opencsw.org> _comp_cmd_pkg_get__catalog_file() { local url=$1 local file 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 [[ ! $url ]]; then url=$(_comp_awk -F = '$1 == "url" { print $2 }' "$conffile") fi REPLY=${url##*//} REPLY=${REPLY%%/*} REPLY=/var/pkg-get/catalog-$REPLY } _comp_cmd_pkg_get() { local cur prev words cword comp_args _comp_initialize -- "$@" || return local url="" command="" if [[ $prev == "-s" ]]; then return 1 fi local i=${#words[@]} while ((--i >= 1)); do if [[ ${words[i]} == -s ]]; then url=${words[i + 1]-} fi if [[ ${words[i]} == @(-[aDdiUu]|available|describe|download|install|list|updatecatalog|upgrade) ]]; then command=${words[i]} fi done if [[ $command ]]; then if [[ $command == @(-[Ddi]|describe|download|install) ]]; then local REPLY _comp_cmd_pkg_get__catalog_file "$url" if [[ -f $REPLY ]]; then local packages_list=$(_comp_awk '$0 ~ /BEGIN PGP SIGNATURE/ { exit } $1 ~ /^Hash:/ || $1 ~ /^ *(-|#|$)/ { next } { print $1 }' "$REPLY") _comp_compgen -- -W '$packages_list' fi fi return fi if [[ $cur == -* ]]; then local -a opts=(-c -d -D -f -i -l -s -S -u -U -v) _comp_compgen -- -W '"${opts[@]}"' return fi local -a commands=( available describe download install list updatecatalog upgrade ) _comp_compgen -- -W '"${commands[@]}"' } && complete -F _comp_cmd_pkg_get pkg-get