
# function:

# u|update
# l|ls
# i|info


___x_cmd_install_nv___(){
    ___X_CMD_PICK_SHBIN_CODE="xrc pkg install" \
    ___x_cmd storeread_  x pick --col 4 ___x_cmd_install_ls___install
}

___x_cmd_install_nv(){
    { ___x_cmd_is_stdout2tty && ___x_cmd_runmode_allow_manual; } \
        || N=install M="Software name required" log:ret:64

    ___x_cmd_install_nv___app_noticelog
    install:info "Browse all softwares included in 'x install' → https://x-cmd.com/install"

    local x_=""
    ___X_CMD_PICK_SHBIN_CODE="xrc pkg install" \
        ___x_cmd storeread_  x pick --col 4 ___x_cmd_install_ls___raw

    [ -n "$x_" ] || {
        # N=install M="Can not find data" log:ret:1
        install:info "Exit because no software is selected."
        # install:info "If you want to dump the list of all software to stdout, try: x install ls | cat"
        return 0
    }

    install:info "Selected software -> [$x_]"

    ___x_cmd_install "$x_"
    # ___x_cmd_install_nv___app_legacy "$x_"
}

___x_cmd_install_nv___app_noticelog(){
    local x_=""
    if ! x os is darwin &&  ___x_cmd_hascmd apt;    then
        x_=apt
    elif    ___x_cmd_hascmd dnf;    then
        x_=dnf
    elif    ___x_cmd_hascmd apk;    then
        x_=apk
    elif    ___x_cmd_hascmd brew;   then
        x_=brew
    elif ___x_cmd_install___env_available; then
        x_=scoop
    fi

    install:info "FYI, x-cmd also provide software navigator for $x_ → '$x_ install'"
}

# ___x_cmd_install_nv___app_legacy(){
#     local software="$1"
#     local homepage
#     homepage="$(___x_cmd_install_get_homepage "$software")"

#     if ! x os is darwin &&  ___x_cmd_hascmd apt;    then
#         ___x_cmd_install___next_main 'x apt     # list all apt avaiable packages '
#     elif    ___x_cmd_hascmd dnf;    then
#         ___x_cmd_install___next_main 'x dnf     # list all dnf avaiable packages '
#     elif    ___x_cmd_hascmd apk;    then
#         ___x_cmd_install___next_main 'x apk     # list all apk avaiable packages '
#     elif    ___x_cmd_hascmd brew;   then
#         ___x_cmd_install___next_main 'x brew    # list all brew avaiable packages '
#     elif ___x_cmd_install___env_available; then
#         ___x_cmd_install___next_main 'x scoop   # list all scoop avaiable packages '
#     else
#         ___x_cmd_install___next_main
#     fi
# }

# # search app in apt/brew/dnf
# ___x_cmd_install___next_main(){
#     local id
#     x ui select id "What to do NEXT"                        \
#         "x install $software"                               \
#         "x open $homepage"                                  \
#         "$@"                                                \
#         "EXIT"     || return
#         # "Visit the official website of $software"   \

#     case "$id" in
#         1)
#             install:info "Install software → x install $software"
#             x install --run "$software" ;;
#         2)
#             install:info "Goto website → x open $homepage"
#             x open "$homepage"          ;;
#         # 3)          x open "https://x-cmd.com/install/$software" ;;     # TODO
#         *)
#             if [ "$((id-3))" -ge $# ]; then
#                 install:info "EXIT [code=0]"
#             else
#                 local cmd; eval "cmd=\"\$$((id-2))\""
#                 install:info "Command → $cmd"
#                 eval  "$cmd"
#             fi
#             ;;
#     esac
# }


