_zapier() {
    local cur=${COMP_WORDS[COMP_CWORD]}
    local cmd=${COMP_WORDS[1]}

    if [ $COMP_CWORD -eq 1 ]; then
        COMPREPLY=( $(compgen -W "--help apps build collaborate convert delete deprecate describe env help history init invite link login logout logs migrate promote push register scaffold test upload validate versions" -- $cur) )
    elif [[ "$cur" == -* ]] || [ -z "$cur" ]; then
        case "$cmd" in
            build)
                COMPREPLY=( $( compgen -W "--disable-dependency-detection --include-js-map" -- $cur ) )
               ;;
            collaborate)
                COMPREPLY=( $( compgen -W "--remove" -- $cur ) )
               ;;
            env)
                COMPREPLY=( $( compgen -W "--remove" -- $cur ) )
               ;;
            init)
                COMPREPLY=( $( compgen -W "--template" -- $cur ) )
               ;;
            invite)
                COMPREPLY=( $( compgen -W "--remove" -- $cur ) )
               ;;
            logs)
                COMPREPLY=( $( compgen -W "--version --status --type --detailed --user --limit" -- $cur ) )
               ;;
            push)
                COMPREPLY=( $( compgen -W "--disable-dependency-detection --include-js-map" -- $cur ) )
               ;;
            scaffold)
                COMPREPLY=( $( compgen -W "--dest --entry" -- $cur ) )
               ;;
            test)
                COMPREPLY=( $( compgen -W "--debug --timeout --skip-validate" -- $cur ) )
               ;;
            validate)
                COMPREPLY=( $( compgen -W "--without-style" -- $cur ) )
               ;;
        esac
    fi
}
complete -F _zapier zapier

