# shellcheck shell=dash disable=SC2034,2153

___x_cmd log init scoop
xrc:mod:lib     scoop                   \
                util __xmirror __xproxy \
                config aria2 install    \
                ls qsearch ddgo la search

___x_cmd_scoop___main(){
    [ "$#" -gt 0 ]  ||      set -- la
    local op="$1";          shift
    case "$op" in
        :|ddgo)             ___x_cmd_scoop_ddgo             "$@";   return  ;;
        ::|ddgoai)          ___x_cmd_scoop_ddgoai           "$@";   return  ;;
        --fzfinfo)          ___x_cmd_scoop___fzfinfo        "$@";   return  ;;
        --fzfdata)          ___x_cmd_scoop___fzfdata        "$@";   return  ;;
        -h|--help)          ___x_cmd help -m scoop              ;   return  ;;
    esac

    ___x_cmd_scoop___env_available || N=scoop M='Scoop is only available on Windows' log:ret:1
    ___x_cmd hascmd scoop || ___x_cmd_scoop___path_add || return $?
    case "$op" in
        alias|bucket|cache|cat|checkup|cleanup| \
        create|depends|download|export|hold|home|import| \
        info|prefix|reset|shim|status| \
        unhold|uninstall|update|virustotal|which|help)
                            ___x_cmd_scoop___bin "$op"      "$@"    ;;

        mirror|--xmirror)   ___x_cmd_scoop___xmirror        "$@"    ;;
        proxy|--xproxy)     ___x_cmd_scoop___xproxy         "$@"    ;;

        qs)                 ___x_cmd_scoop_qsearch          "$@"    ;;

        aria2)              ___x_cmd_scoop_aria2            "$@"    ;;
        config)             ___x_cmd_scoop_config           "$@"    ;;
        search)             ___x_cmd_scoop_search           "$@"    ;;
        install)            ___x_cmd_scoop_install          "$@"    ;;
        ls|list)            ___x_cmd_scoop_list             "$@"    ;;
        la)                 ___x_cmd_scoop_la               "$@"    ;;
        --)                 ___x_cmd_scoop___bin            "$@"    ;;


        *)                  N=scoop M="Unsupported subcmd => $op" log:ret:64  ;;
    esac
}

___x_cmd_scoop___bin(){
    ___x_cmd_cmds scoop "$@"
}
