# shellcheck shell=dash

# failfast

___x_cmd_advise_simple(){
    local is_failfast=
    local is_dfs=
    local reserved_filed="desc|tldr|cand|subcmd|option"
    local data_format=yml
    local data_lang=en
    while [ "$#" -gt 0 ]; do
        case "$1" in
            --dfs)          is_dfs=1; shift ;;
            --failfast)     is_failfast=1; shift ;;
            --field)        reserved_filed="$2"
                            [ "$#" -ge 2 ] || return $?
                            shift 2
                            ;;
            --zh)           data_lang=zh;       shift ;;
            --en)           data_lang=en;       shift ;;
            --json)         data_format=json ;  shift ;;
            --yml)          data_format=yml ;   shift ;;
            -h|--help)      ___x_cmd help -m advise simple; return 0 ;;
            *)              break ;;
        esac
    done

    local filepath="$1"
    case "$filepath" in
        x)  if [ "$#" -ge 2 ]; then
                local x_=; ___x_cmd_advise___main __get_mod_advise_jso_ "$2" || return $?
                filepath="$x_"
                shift 2
            else
                ___x_cmd_advise___main gen_x_advise || return $?
                filepath="$___X_CMD_ADVISE_MAN_CACHE_X_ADVISE_JSO"
                shift
            fi
            ;;
        *)  [ -f "$filepath" ] || return $?
            shift
            ;;
    esac

    advise:debug --argstr "$*" --is_dfs "$is_dfs" --is_failfast "$is_failfast" --reserved_filed "$reserved_filed" --filepath "$filepath"

    local data; data="$( ARGSTR="$*" \
        IS_DFS="$is_dfs" \
        IS_FAILFAST="$is_failfast" \
        RESERVED_FIELD="$reserved_filed" \
        ___X_CMD_ADVISE_DEV_MOD="$___X_CMD_ADVISE_DEV_MOD" \
        DATA_LANG="$data_lang" \
        < "$filepath" ___x_cmd_cmds_awk \
            -v ___X_CMD_ROOT_ADV="$___X_CMD_ROOT_ADV"                       \
            -v ___X_CMD_ADVISE_MAN_XCMD_FOLDER="$___X_CMD_ADVISE_MAN_XCMD_FOLDER" \
            -f "$___X_CMD_ROOT_MOD/awk/lib/core.awk"                        \
            -f "$___X_CMD_ROOT_MOD/awk/lib/sh.awk"                          \
            -f "$___X_CMD_ROOT_MOD/awk/lib/j/json.awk"                      \
            -f "$___X_CMD_ROOT_MOD/awk/lib/j/jiter.awk"                     \
            -f "$___X_CMD_ROOT_MOD/awk/lib/j/jop.awk"                       \
            -f "$___X_CMD_ROOT_MOD/awk/lib/j/jcp.awk"                       \
            -f "$___X_CMD_ROOT_MOD/advise/lib/awk/advise.obj.awk"           \
            -f "$___X_CMD_ROOT_MOD/advise/lib/awk/advise.util.awk"          \
            -f "$___X_CMD_ROOT_MOD/advise/lib/awk/advise.share.awk"         \
            -f "$___X_CMD_ROOT_MOD/advise/lib/awk/ai/simple.awk" )"
    [ -n "$data" ] || return $?
    case "$data_format" in
        json)   printf "%s\n" "$data" ;;
        yml)    printf "%s\n" "$data" | ___x_cmd j2y ;;
    esac
}
