# shellcheck shell=dash disable=2154,1090


# x envy set ./.x-cmd/dev/a.yml _1_issue_name=aaa _1_issue_zone=zh
___x_cmd_envy_set(){
    local ymlfp="$1"
    [ -f "$ymlfp" ] || N=envy M="Not found yml file" log:ret:64
    shift
    [ -n "$*" ] || return 0
    local data; data="$( < "$ymlfp" ___x_cmd_envy_set_ "$@" )" || N=envy M="Fail to set config" log:ret:1
    printf "%s\n" "$data" > "$ymlfp"
}

___x_cmd_envy_set_(){
    local IFS="${___X_CMD_UNSEENCHAR_NEWLINE}"
    namelist="$*" \
    ___x_cmd 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/yml/lib/yparse.value.awk"    \
        -f "$___X_CMD_ROOT_MOD/yml/lib/yparse.json.awk"     \
        -f "$___X_CMD_ROOT_MOD/yml/lib/yparse.awk"          \
        -f "$___X_CMD_ROOT_MOD/envy/lib/awk/util.awk"       \
        -f "$___X_CMD_ROOT_MOD/envy/lib/awk/set.awk"
}


___x_cmd_envy_unset(){
    local ymlfp="$1"
    [ -f "$ymlfp" ] || N=envy M="Not found yml file" log:ret:64
    shift
    [ -n "$*" ] || return 0
    local data; data="$( < "$ymlfp" ___x_cmd_envy_unset_ "$@" )" || N=envy M="Fail to set config" log:ret:1
    printf "%s\n" "$data" # > "$ymlfp"
}

___x_cmd_envy_unset_(){
    local IFS="${___X_CMD_UNSEENCHAR_NEWLINE}"
    namelist="$*" \
    ___x_cmd 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/yml/lib/yparse.value.awk"    \
        -f "$___X_CMD_ROOT_MOD/yml/lib/yparse.json.awk"     \
        -f "$___X_CMD_ROOT_MOD/yml/lib/yparse.awk"          \
        -f "$___X_CMD_ROOT_MOD/envy/lib/awk/util.awk"       \
        -f "$___X_CMD_ROOT_MOD/envy/lib/awk/unset.awk"
}

___x_cmd_envy_get___list_id_(){
    local prefix="$1"
    local key="${2:+"_${2}"}"
    local val="$3"
    eval "local len=\"\$${prefix}_L\""
    x_=1
    [ -n "$len" ] || return 1
    while [ "$x_" -le "$len" ]; do
        eval "[ \"\$${prefix}_${x_}${key}\" != \"$val\" ] || return 0"
        x_=$((x_ + 1))
    done
    return 1
}

