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======="
|