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/slapt-src | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 completions/slapt-src (limited to 'completions/slapt-src') diff --git a/completions/slapt-src b/completions/slapt-src new file mode 100644 index 0000000..1e3828c --- /dev/null +++ b/completions/slapt-src @@ -0,0 +1,68 @@ +# slapt-src(8) completion -*- shell-script -*- + +_slapt_src() +{ + local cur prev words cword split + _init_completion -s -n : || return + + case "$prev" in + --config | -c) + _filedir + return + ;; + --search | -s | --postprocess | -p) + # argument required but no completions available + return + ;; + esac + + $split && return + + if [[ $cur == -* ]]; then + COMPREPLY=($(compgen -W '$(_parse_help "$1" --help)' -- "$cur")) + if [[ ${COMPREPLY-} ]]; then + [[ $COMPREPLY == *= ]] && compopt -o nospace + return + fi + fi + + local i t + # search for last action (-i|-w|-b|-f) + for ((i = ${#words[@]} - 1; i > 0; i--)); do + if [[ ${words[i]} == -@([iwfb]|-install|-show|-build|-fetch) ]]; then + t="all" + break + fi + done + if [[ $t != all ]]; then + return + fi + + local config="/etc/slapt-get/slapt-srcrc" # default config location + # search for config + for ((i = ${#words[@]} - 1; i > 0; i--)); do + if [[ ${words[i]} == -@(c|-config) ]]; then + config="${words[i + 1]}" + __expand_tilde_by_ref config + break + fi + if [[ ${words[i]} == --config=?* ]]; then + config="${words[i]#*=}" + break + fi + done + [[ -r $config ]] || return + + if [[ $cur == *:* ]]; then + local name=${cur%:*} + COMPREPLY=($(LC_ALL=C "$1" --config "$config" --search "^$name" \ + 2>/dev/null | LC_ALL=C command sed -ne \ + "/^$cur/{s/^$name:\([^ ]*\) .*$/\1/;p}")) + else + COMPREPLY=($(LC_ALL=C "$1" --config "$config" --search "^$cur" \ + 2>/dev/null | LC_ALL=C command sed -ne "/^$cur/{s/ .*$//;p}")) + fi +} && + complete -F _slapt_src slapt-src + +# ex: filetype=sh -- cgit v1.2.3