diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 16:24:27 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 16:24:27 +0000 |
commit | 6c18848a903eb3ee06dccd915859ce64195c257c (patch) | |
tree | ea0fe36eb5e6f40e0a1f765d44c4b0c0b2bfb089 /completions/pkgadd | |
parent | Initial commit. (diff) | |
download | bash-completion-6c18848a903eb3ee06dccd915859ce64195c257c.tar.xz bash-completion-6c18848a903eb3ee06dccd915859ce64195c257c.zip |
Adding upstream version 1:2.11.upstream/1%2.11
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'completions/pkgadd')
-rw-r--r-- | completions/pkgadd | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/completions/pkgadd b/completions/pkgadd new file mode 100644 index 0000000..3f5b6a1 --- /dev/null +++ b/completions/pkgadd @@ -0,0 +1,62 @@ +# pkgadd completion -*- shell-script -*- +# +# Copyright 2006 Yann Rouillard <yann@opencsw.org> + +_pkgadd() +{ + local cur prev words cword + _init_completion -n : || return + + # if a device directory was given + # we must complete with the package + # available in this directory + local device=/var/spool/pkg + local i=$cword + while ((i-- > 0)); do + case "${words[i]}" in + -d) + device="${words[i + 1]}" + break + ;; + esac + done + + case $prev in + -d) + _filedir pkg + _filedir -d + ;; + -a | -r | -V) + _filedir + ;; + -k | -s | -R) + _filedir -d + ;; + -P | -x) ;; + + *) + if [[ ${cur} == -* ]]; then + local opts="-a -A -d -k -n -M -P -r -R -s -v -V -x" + COMPREPLY=($(compgen -W "${opts}" -- ${cur})) + else + local pkginst_list + if [[ -d $device ]]; then + local -a tmplist + for filedir in $(/bin/ls -1 $device); do + if [[ -d "$device/$filedir" ]] && [[ -f "$device/$filedir/pkginfo" ]]; then + tmplist+=(${tmplist[@]:-} "$filedir") + fi + done + pkginst_list="${tmplist[*]}" + else + pkginst_list="$(strings "$(dequote $device)" | + command grep ^PKG= | sort -u | cut -d= -f2)" + fi + COMPREPLY=($(compgen -W "$pkginst_list" -- ${cur})) + fi + ;; + esac +} && + complete -F _pkgadd pkgadd + +# ex: filetype=sh |