summaryrefslogtreecommitdiffstats
path: root/utils/kube_setup/install_golang.sh
blob: 06c54ceeab933a836aa5d96d8c8a6dff4f3117d5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#!/bin/bash
##############################################################################
# Copyright (c) 2018 Huawei Technologies Co.,Ltd and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Apache License, Version 2.0
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
usage="Script to install and config golang of specific version.

usage:
    bash $(basename "$0") [-h|--help] [-v|--version <version>] [--debug]

where:
    -h|--help         show the help text
    -v|--version      input the version of golang
    --debug           debug option switch
examples:
    $(basename "$0") -v 1.10.3"

# Debug option
redirect="/dev/null"

# Process input variables
while [[ $# > 0 ]]
    do
    key="$1"
    case $key in
        -h|--help)
            echo "$usage"
            exit 0
            shift
        ;;
        -v|--version)
            GOLANG_VERSION="$2"
            shift
        ;;
        --debug)
            redirect="/dev/stdout"
            shift
        ;;
        *)
            echo "unkown option $1 $2"
            exit 1
        ;;
    esac
    shift
done

#set -e

echo "=======Downloading golang of version: ${GOLANG_VERSION}========"

if [[ -f go${GOLANG_VERSION}.linux-amd64.tar.gz ]]; then
    rm go${GOLANG_VERSION}.linux-amd64.tar.gz
fi
curl -O https://storage.googleapis.com/golang/go${GOLANG_VERSION}.linux-amd64.tar.gz >${redirect}

echo "Installing golang of version: ${GOLANG_VERSION}"
if [[ -d /usr/local/go ]]; then
    rm -rf /usr/local/go
fi

tar -C /usr/local -xzf go${GOLANG_VERSION}.linux-amd64.tar.gz >${redirect}

if [[ -d $HOME/go ]]; then
    rm -rf ${HOME}/go
    mkdir ${HOME}/go
    mkdir ${HOME}/go/bin
    mkdir ${HOME}/go/src
else
    mkdir ${HOME}/go
    mkdir ${HOME}/go/bin
    mkdir ${HOME}/go/src
fi

echo "Adding golang env to ~/.bashrc"
GOROOT=/usr/local/go
GOPATH=${HOME}/go

if [[ $(cat ${HOME}/.bashrc | grep GOROOT) ]]; then
    echo "golang env alreay in ${HOME}/.bashrc"
else
   cat <<EOF >> ${HOME}/.bashrc

export GOROOT=/usr/local/go
export GOPATH=${HOME}/go
export PATH=${PATH}:${GOROOT}/bin:${GOPATH}/bin
EOF
fi

export GOROOT=/usr/local/go
export GOPATH=${HOME}/go
export PATH=${PATH}:${GOROOT}/bin:${GOPATH}/bin

echo "Running go version command:"
go version

echo "=======Installation of golang-${GOLANG_VERSION} complete======="