# shellcheck shell=sh disable=SC2039,3043

___x_cmd log init gt

xrc api arg param ui

xrc:mod gx/lib/share

xrc:mod:lib gt         utils cfg issue event avatar codeurl                \
    _type/index        user/index         user/repo          user/ssh      \
    enterprise/member  enterprise/index   enterprise/team    org/membership  org/apply  org/index \
    repo/index         awk/app/table      notification/index

if ___x_cmd_is_suitable_advise_env; then
    xrc:mod:lib gt advise
fi

___x_cmd_gt___main(){
    local ___X_CMD_GT_LOCAL_CONFIG="${___X_CMD_GT_LOCAL_CONFIG}"
    local ___X_CMD_GT_LOCAL_PROFILE="${___X_CMD_GT_LOCAL_PROFILE}"
    while [ $# -gt 0 ]; do
        case "${1}" in
             :*:*)
                            ___X_CMD_GT_LOCAL_CONFIG="${1#:}"
                            ___X_CMD_GT_LOCAL_CONFIG="${___X_CMD_GT_LOCAL_CONFIG%%:*}"
                            ___X_CMD_GT_LOCAL_PROFILE="${1#:"$___X_CMD_GT_LOCAL_CONFIG":}"
                            shift
                            ;;
            :*)             ___X_CMD_GT_LOCAL_PROFILE="${1#:}";   shift   ;;
            --config)       ___X_CMD_GT_LOCAL_CONFIG="$2";        shift 2 ;;
            --profile)      ___X_CMD_GT_LOCAL_PROFILE="$2";       shift 2 ;;
            *=*)            ___x_cmd_gt_cur "$@"; return ;;
            *)              break;;
        esac
    done

    arg:init gt
    param:advise gt
    param:subcmd ___x_cmd_gt        \
        repo                            "manage repo"                       \
        user                            "manage user"                       \
        org                             "manage organization"               \
        "enterprise|ent"                "manage enterprise"                 \
        issue                           "manage issue"                      \
        avatar                          "manage user addressbook for gt"    \
        "notification|n"                "notification management"           \
        codeurl                         "Get Gitee source url"              \
        --cfg                           "manage configuration for gt"       \
        --cur                           "current CLI owner, repo"           \
        init                            "Interactive UI init configuration"
    param:subcmd:try

    param:subcmd ___x_cmd_gt_repo   \
        pr                              "repo pull request management" \
        "cl|clone"                      "short cut for 'x gt repo clone'"
    param:subcmd:try

    param:run

    ___x_cmd_gt _param_help_doc
    return 1
}

___x_cmd_gt____init(){
    ___X_CMD_GT_TMP="${___X_CMD_GT_TMP:-"${___X_CMD_ROOT_TMP}/gt"}"
    # ___X_CMD_GT_CFG="${___X_CMD_GT_CFG:-"${___X_CMD_ROOT_CFG}/app.gitee.config"}"
    # ___X_CMD_GT_ART="${___X_CMD_GT_ART:-"${___X_CMD_ROOT_ART}/gt"}"
    # ___X_CMD_GT_CACHE="${___X_CMD_GT_CACHE:-"${___X_CMD_ROOT_CACHE}/gt"}"

    ___x_cmd mkdirp "$___X_CMD_GT_TMP" # "$___X_CMD_GT_CFG" "$___X_CMD_GT_ART" "$___X_CMD_GT_CACHE"
}

___x_cmd_gt_cur(){
    param:void
    case "$1" in
        -h|--help)      _____x_cmd_gt_help --cur     ;;
        *)              ___x_cmd_gt_cfg current "$@" ;;
    esac
}

___x_cmd_gt____init
