diff options
Diffstat (limited to 'completions/slapt-get')
-rw-r--r-- | completions/slapt-get | 41 |
1 files changed, 23 insertions, 18 deletions
diff --git a/completions/slapt-get b/completions/slapt-get index 9b249f19..14c2dbea 100644 --- a/completions/slapt-get +++ b/completions/slapt-get @@ -6,25 +6,27 @@ _slapt_get() _init_completion || return case "$prev" in - --config|-c) + --config | -c) _filedir return ;; - --retry|--search) + --retry | --search) # argument required but no completions available return ;; esac - if [[ "$cur" == -* ]]; then - COMPREPLY=( $(compgen -W '$(_parse_help "$1" --help)' -- "$cur") ) - [[ $COMPREPLY == *= ]] && compopt -o nospace - [[ $COMPREPLY ]] && 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 (--install|--install-set|--remove|--show|--filelist) - for (( i=${#words[@]}-1; i>0; i-- )); do + for ((i = ${#words[@]} - 1; i > 0; i--)); do if [[ ${words[i]} == --show ]]; then t="all" break @@ -42,40 +44,43 @@ _slapt_get() local config="/etc/slapt-get/slapt-getrc" # default config location # search for config - for (( i=${#words[@]}-1; i>0; i-- )); do + for ((i = ${#words[@]} - 1; i > 0; i--)); do if [[ ${words[i]} == -@(c|-config) ]]; then - config="${words[i+1]}" + config="${words[i + 1]}" __expand_tilde_by_ref config break fi done - [[ -r "$config" ]] || return + [[ -r $config ]] || return case $t in all) # --show # slapt-get will fail to search for "^name-version" # it can search for names only local name=${cur%%-*} - COMPREPLY=( $(LC_ALL=C "$1" -c "$config" --search "^$name" \ - 2>/dev/null | LC_ALL=C command sed -ne "/^$cur/{s/ .*$//;p}") ) + COMPREPLY=($(LC_ALL=C "$1" -c "$config" --search "^$name" \ + 2>/dev/null | LC_ALL=C command sed -ne "/^$cur/{s/ .*$//;p}")) return ;; avl) # --install|-i| - COMPREPLY=( $(LC_ALL=C "$1" -c "$config" --available \ - 2>/dev/null | LC_ALL=C command sed -ne "/^$cur/{s/ .*$//;p}") ) + COMPREPLY=($(LC_ALL=C "$1" -c "$config" --available \ + 2>/dev/null | LC_ALL=C command sed -ne "/^$cur/{s/ .*$//;p}")) return ;; ins) # --remove|--filelist - COMPREPLY=( $(cd /var/log/packages; compgen -f -- "$cur") ) + COMPREPLY=($( + cd /var/log/packages + compgen -f -- "$cur" + )) return ;; set) # --install-set - COMPREPLY=( $(compgen -W 'a ap d e f k kde kdei l n t tcl x - xap xfce y' -- "$cur") ) + COMPREPLY=($(compgen -W 'a ap d e f k kde kdei l n t tcl x + xap xfce y' -- "$cur")) return ;; esac } && -complete -F _slapt_get slapt-get + complete -F _slapt_get slapt-get # ex: filetype=sh |