# shellcheck    shell=sh        disable=SC3043,SC2164,SC1091     # xrc

xrc param ui cfgy

___x_cmd log init cf
xrc:inner:lib cf util cfg zone \
                dns/record worker/main firewall/ruleset \
                r2/bucket r2/object wrangler/_index c3/_index

___x_cmd_cf___main(){
    local ___X_CMD_CF_LOCAL_CONFIG="${___X_CMD_CF_LOCAL_CONFIG}"
    local ___X_CMD_CF_LOCAL_PROFILE="${___X_CMD_CF_LOCAL_PROFILE}"
    while [ $# -gt 0 ]; do
        case "${1}" in
            :*:*)
                            ___X_CMD_CF_LOCAL_CONFIG="${1#:}"
                            ___X_CMD_CF_LOCAL_CONFIG="${___X_CMD_CF_LOCAL_CONFIG%%:*}"
                            ___X_CMD_CF_LOCAL_PROFILE="${1#:"$___X_CMD_CF_LOCAL_CONFIG":}"
                            shift
                            ;;
            :*)             ___X_CMD_CF_LOCAL_PROFILE="${1#:}";   shift   ;;
            --config)       ___X_CMD_CF_LOCAL_CONFIG="$2";        shift 2 ;;
            --profile)      ___X_CMD_CF_LOCAL_PROFILE="$2";       shift 2 ;;
            *=*)            ___x_cmd_cf_cur "$@"; return ;;
            wr|wrangler)
                            shift
                            ___x_cmd_cf_wrangler "$@"; return ;;
            c3)
                            shift
                            ___x_cmd_cf_c3 "$@"; return ;;
            *)              break;;
        esac
    done

    param:advise    cf
    param:subcmd    ___x_cmd_cf                                 \
        r2              "r2 management"                         \
        dns             "dns management"                        \
        zone            "Get zone information"                  \
        worker          "worker management"                     \
        ruleset         "firewall rule management"              \
        init            "Interactive UI init configuration"     \
        --cfg           "manage configuration for cf"           \
        --cur           "current CLI configuration"

    param:subcmd:try
    param:run

    ___x_cmd_cf _param_help_doc
    return 1
}

___x_cmd_cf_help(){
    x help -m cf "$@"  >&2
    return 1
}

