
# TODO: local variables cannot be passed out.
___x_cmd_envy_load(){
    local x_=;  ___x_cmd_envy_getrc_ "$@" || return
    . "$x_"
}

___x_cmd_envy_getrc_(){
    local ymlfp="$1"
    [ -f "$ymlfp" ] || N=envy M="Not found yml file" log:ret:64
    x_=;    ___x_cmd_abspath_ "$ymlfp" || return
    ymlfp="$x_";    x_=""

    local str="${X_envy_compile_kp}_${X_envy_compile_perfix}_${X_envy_compile_local}_${X_envy_compile_override}"
    local envfp="${___X_CMD_ROOT_CACHE}/envy/parsed${ymlfp}${str}"
    ___x_cmd log :envy debug "envfp ==> $envfp"
    [ "$envfp" -nt "$ymlfp" ] || {
        if ! ___x_cmd envy compile "$ymlfp" "$envfp"; then
            if [ -f "$envfp" ]; then
                x_="$envfp"
            else
                x_=""
            fi
            return 1
        fi
    }

    x_="$envfp"
}
