# shellcheck    shell=dash

xrc cfgy
___x_cmd_gddy_cfg(){
    [ "$#" -gt 0 ] || {
        ___x_cmd_gddy_init
        return
    }

    local op="$1"; shift
    case "$op" in
        -h|--help)      x help -m gddy --cfg ;;
        *)              ___x_cmd_gddy_cfg___invoke "$op" "$@" ;;
    esac
}

___x_cmd_gddy_cur(){
    local X_help_cmd=; X_help_cmd='x help -m gddy --cur' help:arg:parse
    ___x_cmd_gddy_cfg --current "$@"
}

___x_cmd_gddy_init(){
    local cur_apikey=; local cur_secret=; local cur_proxy=;
    if [ -f "$(___x_cmd_gddy_cur --get config)" ]; then
        ___x_cmd_gddy_cur cur_apikey:=key cur_secret:=secret cur_proxy:=proxy
    fi

    ___x_cmd_gddy_cfg___invoke --init    \
        key         "Set up the API key of gddy "       "${cur_apikey}"     \
                        '=~*'   "^[A-Za-z0-9_]+$"           --              \
        secret      "Set up the secret key of gddy"     "${cur_secret}"     \
                        '=~*'   "^[A-Za-z0-9-]+$"           --              \
        proxy       "Set up the proxy  (optional)"      "${cur_proxy}"      \
                        '=~'   "^((http|https|socks5|socks|socks4|socks4a)://.*$|[0-9.]+:[0-9]+)"
}

# Config setting the key.
# set the default prompt

___X_CMD_GDDY_CFG_VARLIST="key,secret,proxy"
___x_cmd_gddy_cfg___invoke(){
    ___x_cmd_cfgy_obj                                             \
        --prefix            ___X_CMD_GDDY_CFG_DATA                \
        --default-config    "${___X_CMD_ROOT_CFG}/gddy/X.cfg.yml" \
        --current-config    "${___X_CMD_GDDY_LOCAL_CONFIG}"       \
        --current-profile   "${___X_CMD_GDDY_LOCAL_PROFILE}"      \
        --varlist           "$___X_CMD_GDDY_CFG_VARLIST"          \
        "$@"
}


