
___x_cmd_gop___runmain(){
    case "$1" in
        u-*)     ___x_cmd_go___runcmd_hub "$@"; return ;;
    esac
    ___x_cmd_gop___runcmd "$@"
}

___x_cmd_gop___runcmd(){
    ___x_cmd_hascmd go || {
        ___x_cmd env try go || {
            local err=$?
            N=gop M="Fail to prepare go for gop. Exit code -> $err" log:ret:64
            return 1
        }
    }

    # then just using gop
    ___x_cmd_hascmd gop || {
        ___x_cmd env try gop || {
            local err=$?
            N=gop M="Fail to prepare gop. Exit Code -> $err" log:ret:64
            return 1
        }
    }

    ___x_cmd_cmds gop "$@"
}

___x_cmd_gop___runcmd_hub(){
    local ___X_CMD_GOP_WHICHFILE=
    local x_=
    ___x_cmd_gop___setarg_ "$@" || return
    gop:debug "cmd x_ ==> $x_"
    [ -z "$x_" ] || eval "$x_"
    gop:debug "Args ==> $*"
    ___x_cmd_gop___runcmd run "$@"
}



