# shellcheck shell=bash disable=SC2098,2097,2012,1090 #xrc

## Section: gen x advise.jso
___x_cmd_advise_gen_x_advise(){
    local op="$1";
    case "$op" in
        --force)
            shift; ___x_cmd_advise_gen_x_advise_force
            return
            ;;
    esac

    if [ ! -f "$___X_CMD_ADVISE_MAN_CACHE_X_ADVISE_JSO" ] || [ "$___X_CMD_ADVISE_MAN_CACHE_X_ADVISE_JSO" -ot "${___X_CMD_ROOT_METADATA}/version_sum" ]; then
        ___x_cmd_advise_gen_x_advise_force
    fi
}

___x_cmd_advise_gen_x_advise_force(){
    # ___x_cmd fslock run "advise.man.x-advise"
    ___x_cmd_advise_gen_x_advise_force_unit
}

___x_cmd_advise_gen_x_advise_force_unit(){
    local advise_file="$___X_CMD_ADVISE_MAN_CACHE_X_ADVISE_JSO"
    local x_=; ___x_cmd advise __get_mod_advise_jso_ x-cmd
    ___x_cmd log :advise info "Generate the advise jso file for the 'x' command -> $advise_file"
    ___x_cmd ensurefp "$advise_file"
    local NOT_SUITABLE_COMPLETE_MOD_LIST="awk
x-cmd
xrc
param"
    ___x_cmd fsiter "${___X_CMD_ROOT_MOD}" | \
        ___X_CMD_ROOT_ADV="$___X_CMD_ROOT_ADV" \
        NOT_SUITABLE_COMPLETE_MOD_LIST="$NOT_SUITABLE_COMPLETE_MOD_LIST" \
        NOT_SUITABLE_XRC_MOD_LIST="$___X_CMD_ADVISE_NOT_SUITABLE_XRC_MOD_LIST" \
        BASEFILE="$x_" \
        ___x_cmd_cmds_awk \
        -f "$___X_CMD_ROOT_MOD/awk/lib/core.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/jcp.awk"       \
        -f "$___X_CMD_ROOT_MOD/awk/lib/j/jop.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/gen.advise/x.advise.awk" > "$advise_file"

}
