# shellcheck shell=dash disable=SC3043

# x yo env \
#     x_ali_token=1.profile.1.auth_token              \
#     x_ali_osspath=1.profile.1.oss.default_path      \
#     x_ali_osspath=1/profile/1/oss/default_path      \
#     -- cat a.yml
# cat .x-cmd/dev/test2.yml | x yo env aa=1.a.1 bb=1.a.3
# x yo env aa=1.a.1 bb=1.a.3 -- cat .x-cmd/dev/test2.yml

___x_cmd_yo_env(){
    local IFS="$___X_CMD_UNSEENCHAR_001"
    local argstr=

    while [ "$#" -gt 0 ]; do
        case "$1" in
            --)     shift; break ;;
            *)      argstr="${argstr}${IFS}${1}"; shift
        esac
    done


    if [ "$#" -eq 0 ]; then
        eval "$( ___x_cmd_yo_env___code )"
    else
        eval "$("$@" | ___x_cmd_yo_env___code)"
    fi
}

___x_cmd_yo_env___code(){
    # Using export environment varaible
    # Using ja to export the variable

    x yml y2j | argstr="$argstr"  ___x_cmd_cmds_awk   \
    -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/re.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/yo/lib/awk/share.awk" \
    -f "$___X_CMD_ROOT_MOD/yo/lib/awk/envcode.awk"
}
