# mailman arch completion

# Try to detect whether this is the mailman "arch" to avoid installing
# it for the coreutils/util-linux-ng one.
_comp_have_command mailmanctl || return 1

_comp_cmd_arch()
{
    local cur prev words cword was_split comp_args
    _comp_initialize -s -- "$@" || return

    case $prev in
        -w | -g | -d | --welcome-msg | --goodbye-msg | --digest)
            _comp_compgen -- -W 'y n'
            return
            ;;
        --file)
            _comp_compgen_filedir
            return
            ;;
    esac

    [[ $was_split ]] && return

    if [[ $cur == -* ]]; then
        _comp_compgen_help
    else
        local args=$cword
        for ((i = 1; i < cword; i++)); do
            if [[ ${words[i]} == -* ]]; then
                ((args--))
            fi
        done
        case $args in
            1)
                # 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)
                _comp_compgen_filedir
                ;;
        esac
    fi

} &&
    complete -F _comp_cmd_arch arch
