308ba7f915
* Default to go1.17.11 * `go mod vendor` Co-authored-by: dm-2 <45519614+dm-2@users.noreply.github.com>
55 lines
1.6 KiB
Bash
Executable File
55 lines
1.6 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
PREFERRED_GO_VERSION=go1.17.11
|
|
SUPPORTED_GO_VERSIONS='go1.1[567]'
|
|
|
|
GO_PKG_DARWIN=${PREFERRED_GO_VERSION}.darwin-amd64.pkg
|
|
GO_PKG_DARWIN_SHA=4f924c534230de8f0e1c7369f611c0310efd21fc2d9438b13bc2703af9dda25a
|
|
|
|
GO_PKG_LINUX=${PREFERRED_GO_VERSION}.linux-amd64.tar.gz
|
|
GO_PKG_LINUX_SHA=d69a4fe2694f795d8e525c72b497ededc209cb7185f4c3b62d7a98dd6227b3fe
|
|
|
|
export ROOTDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )/.." && pwd )"
|
|
cd $ROOTDIR
|
|
|
|
# If Go isn't installed globally, setup environment variables for local install.
|
|
if [ -z "$(which go)" ] || [ -z "$(go version | grep "$SUPPORTED_GO_VERSIONS")" ]; then
|
|
GODIR="$ROOTDIR/.vendor/golocal"
|
|
|
|
if [ $(uname -s) = "Darwin" ]; then
|
|
export GOROOT="$GODIR/usr/local/go"
|
|
else
|
|
export GOROOT="$GODIR/go"
|
|
fi
|
|
|
|
export PATH="$GOROOT/bin:$PATH"
|
|
fi
|
|
|
|
# Check if local install exists, and install otherwise.
|
|
if [ -z "$(which go)" ] || [ -z "$(go version | grep "$SUPPORTED_GO_VERSIONS")" ]; then
|
|
[ -d "$GODIR" ] && rm -rf $GODIR
|
|
mkdir -p "$GODIR"
|
|
cd "$GODIR";
|
|
|
|
if [ $(uname -s) = "Darwin" ]; then
|
|
curl -L -O https://dl.google.com/go/$GO_PKG_DARWIN
|
|
shasum -a256 $GO_PKG_DARWIN | grep $GO_PKG_DARWIN_SHA
|
|
xar -xf $GO_PKG_DARWIN
|
|
cpio -i < com.googlecode.go.pkg/Payload
|
|
else
|
|
curl -L -O https://dl.google.com/go/$GO_PKG_LINUX
|
|
shasum -a256 $GO_PKG_LINUX | grep $GO_PKG_LINUX_SHA
|
|
tar xf $GO_PKG_LINUX
|
|
fi
|
|
|
|
# Prove we did something right
|
|
echo "$(go version) installed in $GODIR: Go Binary: $(which go)"
|
|
else
|
|
echo "$(go version) found in $GODIR: Go Binary: $(which go)"
|
|
fi
|
|
|
|
cd $ROOTDIR
|
|
|
|
# Configure the new go to be the first go found
|
|
export GOPATH=$ROOTDIR/.vendor
|