Add a script to check the Go version before building dex. This
gives a nice error message rather than just failing to compile.
With changes:
    $ go version
    go version go1.6.4 linux/amd64
    $ make
    ERROR: dex requires Go version 1.7+. Please update your Go installation: https://golang.org/dl/
    Makefile:93: recipe for target 'check-go-version' failed
    make: *** [check-go-version] Error 2
Checks only added for building the actual binary, not tests, since
this is aimed at users just starting off with the project.
		
	
		
			
				
	
	
		
			34 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/sh
 | 
						|
 | 
						|
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" )
 | 
						|
 | 
						|
# Minor go verisons which have known security vulnerabilities. Refuse to build with these.
 | 
						|
#
 | 
						|
# There aren't any security issues that impact dex in 1.7 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.7+. 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 verison."
 | 
						|
        exit 2
 | 
						|
    fi
 | 
						|
done
 | 
						|
 |