# bash completion for btguard
_btguard() {
    local cur prev cmds
    cur="${COMP_WORDS[COMP_CWORD]}"
    prev="${COMP_WORDS[COMP_CWORD-1]}"
    cmds="status connect disconnect pause resume regions login logout account settings set favorites save-ip split-tunnel port-forward capabilities version help"
    if [[ $COMP_CWORD -eq 1 ]]; then
        COMPREPLY=($(compgen -W "$cmds" -- "$cur"))
        return
    fi
    case "${COMP_WORDS[1]}:$prev" in
        set:set) COMPREPLY=($(compgen -W "protocol kill-switch auto-connect" -- "$cur")) ;;
        set:protocol|connect:-p|connect:--protocol|regions:-p|regions:--protocol)
            COMPREPLY=($(compgen -W "auto wireguard ikev2 stealth" -- "$cur")) ;;
        set:kill-switch|set:auto-connect|save-ip:save-ip) COMPREPLY=($(compgen -W "on off" -- "$cur")) ;;
        split-tunnel:split-tunnel) COMPREPLY=($(compgen -W "on off mode add remove list" -- "$cur")) ;;
        split-tunnel:mode) COMPREPLY=($(compgen -W "bypass include" -- "$cur")) ;;
        split-tunnel:add) COMPREPLY=($(compgen -c -- "$cur")) ;;
        port-forward:port-forward) COMPREPLY=($(compgen -W "list on off add remove" -- "$cur")) ;;
        favorites:favorites|favourites:favourites) COMPREPLY=($(compgen -W "add remove clear list" -- "$cur")) ;;
        status:*) COMPREPLY=($(compgen -W "--json --watch" -- "$cur")) ;;
        connect:*) COMPREPLY=($(compgen -W "fastest --protocol --no-wait" -- "$cur")) ;;
        disconnect:*) COMPREPLY=($(compgen -W "--release" -- "$cur")) ;;
    esac
}
complete -F _btguard btguard
