# shellcheck shell=sh disable=SC2039,3043

___x_cmd log init gl

xrc api arg param ui
xrc:mod gx/lib/share
xrc:inner:lib gl    utils cfg avatar    ddgo codeurl \
    repo/index      group/index         group/member        group/repo  \
    user/index      user/repo           issue/index         _type/index \
    user/ssh        user/gpg            deploy/index        deploy/key  \
    variable/group-variable

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

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

    arg:init gl
    param:advise gl
    param:subcmd ___x_cmd_gl                                    \
        repo            "repo management"                       \
        issue           "issue management"                      \
        user            "user management"                       \
        group           "groups management"                     \
        subgroup        "subgroups management"                  \
        avatar          "manage user addressbook for gl"        \
        deploy          "deployment management"                 \
        codeurl         "Get GitLab source url"                 \
        "ddgo|:"        "List about GitLab content using DuckDuckGo"   \
        --cfg           "manage configuration for gl"           \
        --cur           "current CLI owner, repo"               \
        "init"          "Interactive UI init configuration"
    param:subcmd:try

     param:subcmd ___x_cmd_gl_repo   \
        "mr|pr"         "short cut for 'x gl repo mr'"          \
        cl              "short cut for 'x gl repo clone'"
    param:subcmd:try

    param:run

    ___x_cmd_gl _param_help_doc
    return 1
}

___x_cmd_gl____init(){
    ___X_CMD_GL_TMP="${___X_CMD_GL_TMP:-"${___X_CMD_ROOT_TMP}/gl"}"
    # ___X_CMD_GL_CFG="${___X_CMD_GL_CFG:-"${___X_CMD_ROOT_CFG}/app.gitlab.config"}"
    # ___X_CMD_GL_ART="${___X_CMD_GL_ART:-"${___X_CMD_ROOT_ART}/gl"}"
    # ___X_CMD_GL_CACHE="${___X_CMD_GL_CACHE:-"${___X_CMD_ROOT_CACHE}/gl"}"

    ___x_cmd mkdirp "$___X_CMD_GL_TMP"
}

___x_cmd_gl____init
