diff options
Diffstat (limited to '')
-rw-r--r-- | completions/arch | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/completions/arch b/completions/arch index afeed05..7ca9738 100644 --- a/completions/arch +++ b/completions/arch @@ -2,27 +2,27 @@ # Try to detect whether this is the mailman "arch" to avoid installing # it for the coreutils/util-linux-ng one. -_have mailmanctl && - _arch() +_comp_have_command mailmanctl && + _comp_cmd_arch() { - local cur prev words cword split - _init_completion -s || return + local cur prev words cword was_split comp_args + _comp_initialize -s -- "$@" || return case $prev in -w | -g | -d | --welcome-msg | --goodbye-msg | --digest) - COMPREPLY=($(compgen -W 'y n' -- "$cur")) + _comp_compgen -- -W 'y n' return ;; --file) - _filedir + _comp_compgen_filedir return ;; esac - $split && return + [[ $was_split ]] && return if [[ $cur == -* ]]; then - COMPREPLY=($(compgen -W '$(_parse_help "$1")' -- "$cur")) + _comp_compgen_help else local args=$cword for ((i = 1; i < cword; i++)); do @@ -32,15 +32,18 @@ _have mailmanctl && done case $args in 1) - _xfunc list_lists _mailman_lists + # Prefer `list_lists` in the same dir as command + local pathcmd + pathcmd=$(type -P "$1") && local PATH=${pathcmd%/*}:$PATH + _comp_compgen -x list_lists mailman_lists ;; 2) - _filedir + _comp_compgen_filedir ;; esac fi } && - complete -F _arch arch + complete -F _comp_cmd_arch arch # ex: filetype=sh |