# shellcheck shell=dash disable=SC3043
# x yo edit -f a.yml 1.profile.1.auth_token="$x_ali_token"

# : <a.yml x yo edit y:1.profile='
# abc:
#     3
# url:
#     axx.com
# ' 1.profile.url=bbb.com
xrc arg
___x_cmd_yo_env_edit(){
    local fp
    while [ $# -gt 0 ]; do
        case "$1" in
            -f)
                fp="$2"
                [ -f "$fp" ] || M='Please provide yml file path.' arg:ret:64
                shift 2
                ;;
            *)
                break
        esac
    done

    if [ -z "$fp" ]; then
        ___x_cmd_yo_env_editmain "$@"
    else
        ___x_cmd_yo_env_editfile "$@"
    fi

}

___x_cmd_yo_env_editfile(){
    local res
    res="$(___x_cmd_yo_env_editmain "$@" <"$fp" )" || return
    printf "%s\n" "$res" >"$fp"
}

___x_cmd_yo_env_editmain(){
    local IFS="$___X_CMD_UNSEENCHAR_001"
    x yml y2j | argstr="$*" x cawk \
    -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/yml/lib/yutil.awk"       \
    -f "$___X_CMD_ROOT_MOD/yml/lib/ystr.awk"        \
    -f "$___X_CMD_ROOT_MOD/yo/lib/awk/share.awk"    \
    -f "$___X_CMD_ROOT_MOD/yo/lib/awk/edit.awk"
}
