MAJOR_GOVERSION=$( go version | grep -o 'go1\.[0-9]')
FULL_GOVERSION=$( go version| grep -o 'go1\.[0-9|\.]*' )
# The list of unsupported major go versions.
UNSUPPORTED=( "go1.0" "go1.1" "go1.2" "go1.3" "go1.4" )
# Minor go verisons which have known security vulnerabilities. Refuse to build with these.
KNOWN_INSECURE=( "go1.5" "go1.5.1" "go1.5.2" )
for V in "${UNSUPPORTED[@]}"; do
if [ "$V" = "$MAJOR_GOVERSION" ]; then
echo "dex requires Go version 1.5.3+. Please update your Go version."
exit 2
fi
done
for V in "${KNOWN_INSECURE[@]}"; do
if [ "$V" = "$FULL_GOVERSION" ]; then
echo "Go version ${V} has known security vulnerabilities which impact dex. Please update your Go verison."
PROJ="dex"
ORG_PATH="github.com/coreos"
REPO_PATH="${ORG_PATH}/${PROJ}"
if [ ! -h gopath/src/${REPO_PATH} ]; then
mkdir -p gopath/src/${ORG_PATH}
ln -s ${PWD} gopath/src/${REPO_PATH} || exit 255
export GOPATH=${PWD}/gopath
export GOBIN=${PWD}/bin
export GO15VENDOREXPERIMENT=1
export VERSION=$(./git-version)
LD_FLAGS="-X main.version=${VERSION}"