# shellcheck shell=sh disable=SC2039,SC3043,SC2120,SC2154
# reference:    https://open.dingtalk.com/document/group/custom-robot-access

xrc param http ui
___x_cmd log init dingtalk
xrc:mod:lib dingtalk    util type bot cfg

___x_cmd_dingtalk___main(){
    arg:init dingtalk
    local ___X_CMD_DINGTALK_LOCAL_CONFIG="${___X_CMD_DINGTALK_LOCAL_CONFIG}"
    local ___X_CMD_DINGTALK_LOCAL_PROFILE="${___X_CMD_DINGTALK_LOCAL_PROFILE}"

    while [ $# -gt 0 ]; do
        case "${1}" in
            --config)       ___X_CMD_DINGTALK_LOCAL_CONFIG="$2";        arg:2:shift ;;
            @*)             ___X_CMD_DINGTALK_LOCAL_CONFIG="${1#@}";    shift       ;;
            --profile)      ___X_CMD_DINGTALK_LOCAL_PROFILE="$2";       arg:2:shift ;;
            :*)             ___X_CMD_DINGTALK_LOCAL_PROFILE="${1#:}";   shift       ;;
            *)              break;;
        esac
    done

    param:advise dingtalk
    param:subcmd ___x_cmd_dingtalk                              \
        bot             "dingtalk bot"                          \
        --cfg           "manage configuration for dingtalk"     \
        --cur           "current configuration for dingtalk"    \
        init            "Interactive UI init configuration"
    param:subcmd:try

    param:subcmd ___x_cmd_dingtalk_bot           \
        send            "send msg"
    param:subcmd:try

    param:run

    if [ "$#" -eq 0 ]; then
        ___x_cmd_dingtalk --help
    else
        ___x_cmd_dingtalk bot send "$@"
    fi
    return
}

___x_cmd_dingtalk_help(){
    ___x_cmd help -m dingtalk "$@" >&2
}
