# Author:       Li Junhao       l@x-cmd.com
# shellcheck    shell=sh        disable=SC2039,SC1090,SC3043,SC2263

# license:      GPLv3
___x_cmd log init api
xrc:mod:lib api main  \
    provider/ali    provider/aws    provider/ucloud  provider/cloudflare \
    provider/gh     provider/gt     provider/gl      provider/tea \
    sign/ali_sign   sign/aws/ecs_sign  sign/ucloud/ecs_sign

___x_cmd_api(){
    local op="${1}"; [ -z "$op" ] || shift
    case "$op" in
        gh)         ___x_cmd_api_gh     "$@" ;;
        gt)         ___x_cmd_api_gt     "$@" ;;
        gl)         ___x_cmd_api_gl     "$@" ;;
        tea)        ___x_cmd_api_tea    "$@" ;;
        ali|aws|ucloud)
                    ___x_cmd openssl 1>/dev/null 2>&1
                    ___x_cmd_api_"${op}"    "$@" ;;
        cloudflare) ___x_cmd_api_cloudflare "$@" ;;
        *)          _____x_cmd_api_help; return;;
    esac
}

_____x_cmd_api_init(){
    ___X_CMD_API_TMP="${___X_CMD_API_TMP:-"${___X_CMD_ROOT_TMP}/api"}"
    ___x_cmd mkdirp "$___X_CMD_API_TMP"
}

# shellcheck disable=2120
_____x_cmd_api_help(){
    ___x_cmd help -m api "$@" 1>&2
    return 1
}
_____x_cmd_api_init
xrc setmain ___x_cmd_api
