# shellcheck shell=dash disable=2016
# https://github.com/shilangyu/scoop-search

___x_cmd_scoop_qsearch(){
    local X_help_cmd=; X_help_cmd='___x_cmd help -m scoop qs' help:arg:parse

    if ___x_cmd_is_stdout2tty && ___x_cmd_runmode_allow_chatty ; then
        ___x_cmd_scoop_qsearch___fz "$@"
    else
        ___x_cmd_scoop_qsearch___raw "$@"
    fi
}

___x_cmd_scoop_qsearch___prepare(){
    ___x_cmd hascmd scoop-search.exe || ___x_cmd scoop install scoop-search
}

___x_cmd_scoop_qsearch___raw(){
    ___x_cmd_scoop_qsearch___prepare || return $?
    scoop-search.exe "$@"
}

___x_cmd_scoop_qsearch___fz(){
    local x_=;
    ___x_cmd_scoop___fzf_  ___x_cmd_scoop_qsearch___fzlist "$@" || return $?
    [ -n "$x_" ] || return $?
    x_="${x_%% \(*}"
    local software="${x_%% *}"
    local bucket="${x_##* }"
    local _id; local _cmd
    ___x_cmd ui select _id,_cmd NEXT    \
        "x scoop info       ${bucket}/${software}"    \
        "x scoop install    ${bucket}/${software}"    \
        "return"    || return $?
    case "$_id" in
        1)  scoop:info "cmd -> $_cmd"; ___x_cmd scoop info "${bucket}/${software}" ;;
        2)  scoop:info "cmd -> $_cmd"; ___x_cmd scoop install "${bucket}/${software}" ;;
        *)  return ;;
    esac
}

___x_cmd_scoop_qsearch___fzlist(){
    ___x_cmd_scoop_qsearch___raw "$@" | ___x_cmd_scoop___parse_qs_list
}
