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