# shellcheck shell=dash
___x_cmd_whisper_model_ll(){
    [ -f "$___X_CMD_WHISPER_MODEL_DATA_INFO" ] || return
    ___x_cmd csv static_tab < "$___X_CMD_WHISPER_MODEL_DATA_INFO"
}

___x_cmd_whisper_model_ls(){
    [ "$#" -gt 0 ] || set -- --app
    local op="$1"; shift
    case "$op" in
        --csv|--json|--app)
            ___x_cmd_whisper_model_ls___"${op#--}" "$@"  ;;
        *)  N=whisper M="Not such [option=$op]" log:ret:64 ;;
    esac
}

___x_cmd_whisper_model_ls___json(){
    [ -f "$___X_CMD_WHISPER_MODEL_DATA_INFO" ] || return
    < "$___X_CMD_WHISPER_MODEL_DATA_INFO" ___x_cmd csv tojson | ___x_cmd jo fmt
}

___x_cmd_whisper_model_ls___csv(){
    [ -f "$___X_CMD_WHISPER_MODEL_DATA_INFO" ] || return
    ___x_cmd_cmds_cat "$___X_CMD_WHISPER_MODEL_DATA_INFO"
}

___x_cmd_whisper_model_ls___app_(){
    x_=""
    [ -f "$___X_CMD_WHISPER_MODEL_DATA_INFO" ] || return
    ___x_cmd storeread_ < "$___X_CMD_WHISPER_MODEL_DATA_INFO" \
    ___x_cmd csv app --return print
    x_="${x_%%,*}"
}

___x_cmd_whisper_model_ls___app(){
    if ___x_cmd_is_stdout2tty &&  ___x_cmd_runmode_allow_manual; then
        ___X_CMD_SHBIN_CODE=' xrc whisper ; "$@"' \
        ___x_cmd antizshbin ___x_cmd_whisper_model_ls___app___
    else
        ___x_cmd_whisper_model_ls___csv "$@"
    fi

}

___x_cmd_whisper_model_ls___app___()(
    [ -f "$___X_CMD_WHISPER_MODEL_DATA_INFO" ] || return

    < "$___X_CMD_WHISPER_MODEL_DATA_INFO" \
    ___x_cmd csv app --return var --clear
    [ -n "$___X_CMD_CSV_APP_DATA_name" ] || return 0

    local model_name="$___X_CMD_CSV_APP_DATA_name"
    local id
    ___x_cmd ui select id "Next move for next step:"    \
        "Download $model_name"                   \
        "Set as default model: $model_name"      \
        "Which model: $model_name"               \
        "Exit"

    [ -n "$id" ] || return 1
    case "$id" in
        1)      ___x_cmd whisper model download           "$model_name"            ;;

        2)      ___x_cmd_whisper_model_default set "$model_name"
                x_=; ___x_cmd_whisper_model_default get_
                whisper:info "Current default model is ${x_}"
                ;;

        3)      ___x_cmd whisper model which              "$model_name"            ;;
        4)      return ;;
    esac
)
