diff --git a/scripts/vagrant-linux-priv-go.sh b/scripts/vagrant-linux-priv-go.sh index 7bfc7924f..42f307c74 100755 --- a/scripts/vagrant-linux-priv-go.sh +++ b/scripts/vagrant-linux-priv-go.sh @@ -1,16 +1,22 @@ #!/usr/bin/env bash +set -o errexit + function install_go() { local go_version="1.15.5" - local download= + local download="https://storage.googleapis.com/golang/go${go_version}.linux-amd64.tar.gz" - download="https://storage.googleapis.com/golang/go${go_version}.linux-amd64.tar.gz" - - if [ -d /usr/local/go ] ; then + if go version 2>&1 | grep -q "${go_version}"; then return fi - curl -sSL --fail -o /tmp/go.tar.gz ${download} + # remove previous older version + rm -rf /usr/local/go + + # retry downloading on spurious failure + curl -sSL --fail -o /tmp/go.tar.gz \ + --retry 5 --retry-connrefused \ + "${download}" tar -C /tmp -xf /tmp/go.tar.gz sudo mv /tmp/go /usr/local @@ -18,7 +24,7 @@ function install_go() { } install_go - + # Ensure that the GOPATH tree is owned by vagrant:vagrant mkdir -p /opt/gopath chown -R vagrant:vagrant /opt/gopath