# shellcheck shell=dash

xrc ui

___x_cmd log init weixin
xrc:mod:lib     weixin                  \
                cfg                     \
                bot/_index               \
                listen/_index            \
                util/index react


___X_CMD_WEIXIN_TMP="$___X_CMD_ROOT_TMP/weixin"
___x_cmd mkdirp "${___X_CMD_WEIXIN_TMP}"

___x_cmd_weixin___main(){
    local ___X_CMD_WEIXIN_LOCAL_CONFIG="${___X_CMD_WEIXIN_LOCAL_CONFIG}"
    local ___X_CMD_WEIXIN_LOCAL_PROFILE="${___X_CMD_WEIXIN_LOCAL_PROFILE}"
    local ___X_CMD_WEIXIN_CONTEXT_TOKEN="${___X_CMD_WEIXIN_TMP}/context_token"

    [ "$#" -gt 0 ] || set -- --help
    local op="$1"; shift
    case "$op" in
        --cfg)
                    ___x_cmd_weixin_cfg         "$@" ;;
        --cur)
                    ___x_cmd_weixin_cur         "$@" ;;
        --isready)
                    ___x_cmd_weixin_"${op#--}"  "$@" ;;
        login|listen|react|bot)
                    ___x_cmd_weixin_"$op"       "$@" ;;

        start|stop|restart|status)
                    ___x_cmd_weixin_bot_service "$@" ;;

        send|recv)
                    ___x_cmd_weixin_bot "$op"   "$@" ;;
        parse)
                    ___x_cmd_weixin_parse       "$@" ;;

        --help|-h|*)    ___x_cmd help -m weixin      ;;
    esac
}

___x_cmd_weixin___help(){
    ___x_cmd help -m weixin "$@" >&2
}
