-
Notifications
You must be signed in to change notification settings - Fork 10
/
setup.sh
executable file
·67 lines (55 loc) · 2.29 KB
/
setup.sh
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
#!/bin/sh
LIGHT_GREEN='\033[1;32m'
GREEN='\033[0;32m'
CLEAR='\033[0m'
if [ -n "$(which sudo 2>/dev/null)" ]; then
SUDO=sudo
fi
function install_packages() {
echo -e "${CLEAR}${LIGHT_GREEN}Install prerequisites${CLEAR}"
# Fedora
if [ -n "$(command -v dnf)" ]; then
${SUDO} dnf -y install gcc git wget make which
fi
# Ubuntu
if [ -n "$(command -v apt-get)" ]; then
${SUDO} apt-get -y install gcc git wget make which
fi
}
function install_go_bins() {
GO_VERSION=go1.10.2
GO_LOCATION=/usr/local
if [ -z $(which go 2>/dev/null) ]; then
echo -e "${CLEAR}${LIGHT_GREEN}Installing target Go version ${GO_VERSION}${CLEAR} to ${GO_LOCATION}"
${SUDO} wget -P /tmp --no-verbose https://dl.google.com/go/${GO_VERSION}.linux-amd64.tar.gz \
&& echo "4b677d698c65370afa33757b6954ade60347aaca310ea92a63ed717d7cb0c2ff /tmp/${GO_VERSION}.linux-amd64.tar.gz" > /tmp/go-bin-checksum \
&& sha256sum -c /tmp/go-bin-checksum \
&& tar -C ${GO_LOCATION} -xzf /tmp/${GO_VERSION}.linux-amd64.tar.gz \
&& rm -f /tmp/${GO_VERSION}.linux-amd64.tar.gz
if [ -z ${GOPATH} ]; then
export GOPATH=${HOME}/go-workspace
fi
mkdir -p ${GOPATH}
GO_BIN_LOCATION=${GO_LOCATION}/go/bin
export PATH=$PATH:${GO_BIN_LOCATION}:${GOPATH}/bin
echo -e "${CLEAR}${GREEN}Go has been installed to ${GO_LOCATION} and ${CLEAR}\$GOPATH${GREEN} variable set to ${GOPATH}." \
"Don't forget to add the Go binary directory along with ${GOPATH}/bin to your ${CLEAR}\$PATH${GREEN}: \n${CLEAR}" \
"${LIGHT_GREEN}export PATH=\$PATH:${GO_BIN_LOCATION}:${GOPATH}/bin" &&
echo -e "${CLEAR}${GREEN}You can also extend your ${CLEAR}\$GOPATH${GREEN} to contain your workspace, e.g.: \n${CLEAR}" \
"${LIGHT_GREEN}export GOPATH=\$GOPATH:~/code/golang${CLEAR}"
fi
if [ -z $(which dep 2>/dev/null) ]; then
echo -e "${CLEAR}${LIGHT_GREEN}Installing dep${CLEAR}"
curl https://raw.githubusercontent.com/golang/dep/1550da37d8fab9ed2dbc4bd04290e6c8dd3ff04a/install.sh | sh
fi
}
if [[ $1 != "--only-go-bins" ]]; then
install_packages
fi
install_go_bins
if [[ $1 != "--only-go-bins" ]]; then
echo -e "${CLEAR}${LIGHT_GREEN}Installing required go packages${CLEAR}"
make tools
echo -e "${CLEAR}${LIGHT_GREEN}Installing project dependencies${CLEAR}"
make deps
fi