#!/bin/bash set -e VERSION=$( go version ) # For development versions of Go, these will be empty. MAJOR_GOVERSION=$( echo -n "$VERSION" | grep -o 'go1\.[0-9]*' || true ) FULL_GOVERSION=$( echo -n "$VERSION" | grep -o 'go1\.[0-9|\.]*' || true ) # The list of unsupported major go versions. UNSUPPORTED=( "go1.0" "go1.1" "go1.2" "go1.3" "go1.4" "go1.5" "go1.6" "go1.7" ) # Minor go versions which have known security vulnerabilities. Refuse to build with these. # # There aren't any security issues that impact dex in current Go versions but minor versions # should be added here later if they do have issues. KNOWN_INSECURE=( ) for V in "${UNSUPPORTED[@]}"; do if [ "$V" = "$MAJOR_GOVERSION" ]; then >&2 echo "ERROR: dex requires Go version 1.8+. Please update your Go installation: https://golang.org/dl/" exit 2 fi done for V in "${KNOWN_INSECURE[@]}"; do if [ "$V" = "$FULL_GOVERSION" ]; then >&2 echo "Go version ${V} has known security vulnerabilities which impact dex. Please update your Go version." exit 2 fi done