# shellcheck shell=dash disable=SC2154

___x_cmd_cfgy_obj_init(){
    local X_help_cmd="${X_help_cmd:-x help -m cfgy obj --init}";
    [ "$#" -gt 0 ] || {
        help:show:ret:64
    }

    cfgy:arg:config-profile:all
    cfgy:debug --profile "$profile" --config "$config" init
    local ___X_CMD_CFGY_OBJ_CURRENT_CONFIG="$config"
    local ___X_CMD_CFGY_OBJ_CURRENT_PROFILE="$profile"

    local ___X_CMD_TUI_FORM_UNSET=;
    local ___X_CMD_TUI_FORM_FINAL_COMMAND;
    local ___X_CMD_TUI_FORM_VAR_PREFIX='___X_CMD_CFGY_INIT_'
    ___X_CMD_TUI_FORM_VAR_PREFIX="$___X_CMD_TUI_FORM_VAR_PREFIX" ___x_cmd tui form "$@"

    [ "$___X_CMD_TUI_FORM_FINAL_COMMAND" = "execute" ] || return $?
    eval "$(
        printf "%s\n" "$___X_CMD_TUI_FORM_UNSET" | \
        ___x_cmd_cmds_awk -v prefix="$___X_CMD_TUI_FORM_VAR_PREFIX" '
        BEGIN{ var_prefix_l = length(prefix); }
        NR>1{ print "___x_cmd_cfgy_obj_set " substr($2, var_prefix_l+1) "=\"$" $2 "\""; }
        '
    )"

    eval "$___X_CMD_TUI_FORM_UNSET"
}

# ___x_cmd_cfgy_obj_init id      "Id for repo"   123         '=~' '^[0-9]+$'          -- \
#           name    "Name for repo" x-cmd/x-cmd '=~' '^[/A-Za-z0-9_-]+$' -- \
#           access  "Repo access"   ""          '=' private pubic
