github.com/anth0d/nomad@v0.0.0-20221214183521-ae3a0a2cad06/scripts/vagrant-linux-priv-go.sh (about) 1 #!/usr/bin/env bash 2 3 set -o errexit 4 5 function install_go() { 6 local go_version="1.19.3" 7 local download="https://storage.googleapis.com/golang/go${go_version}.linux-amd64.tar.gz" 8 9 if go version 2>&1 | grep -q "${go_version}"; then 10 return 11 fi 12 13 # remove previous older version 14 rm -rf /usr/local/go 15 16 # retry downloading on spurious failure 17 curl -sSL --fail -o /tmp/go.tar.gz \ 18 --retry 5 --retry-connrefused \ 19 "${download}" 20 21 tar -C /tmp -xf /tmp/go.tar.gz 22 sudo mv /tmp/go /usr/local 23 sudo chown -R root:root /usr/local/go 24 } 25 26 install_go 27 28 # Ensure that the GOPATH tree is owned by vagrant:vagrant 29 mkdir -p /opt/gopath 30 chown -R vagrant:vagrant /opt/gopath 31 32 # Ensure Go is on PATH 33 if [ ! -e /usr/bin/go ] ; then 34 ln -s /usr/local/go/bin/go /usr/bin/go 35 fi 36 if [ ! -e /usr/bin/gofmt ] ; then 37 ln -s /usr/local/go/bin/gofmt /usr/bin/gofmt 38 fi 39 40 41 # Ensure new sessions know about GOPATH 42 if [ ! -f /etc/profile.d/gopath.sh ] ; then 43 cat <<EOT > /etc/profile.d/gopath.sh 44 export GOPATH="/opt/gopath" 45 export PATH="/opt/gopath/bin:\$PATH" 46 EOT 47 chmod 755 /etc/profile.d/gopath.sh 48 fi