Merge pull request #719 from sudharsh/go_minver_verify
The required go version to build packer seems to be 1.2
This commit is contained in:
commit
a6d5ebaf5e
|
@ -53,9 +53,8 @@ it raises the chances we can quickly merge or address your contributions.
|
||||||
If you have never worked with Go before, you will have to complete the
|
If you have never worked with Go before, you will have to complete the
|
||||||
following steps in order to be able to compile and test Packer.
|
following steps in order to be able to compile and test Packer.
|
||||||
|
|
||||||
1. Install Go. On a Mac, you can `brew install go`. Make sure the Go
|
1. Install Go. Make sure the Go version is at least Go 1.2. Packer will not work with anything less than
|
||||||
version is at least Go 1.1. Packer will not work with anything less than
|
Go 1.2. On a Mac, you can `brew install go` to install Go 1.2.
|
||||||
Go 1.1.
|
|
||||||
|
|
||||||
2. Set and export the `GOPATH` environment variable. For example, you can
|
2. Set and export the `GOPATH` environment variable. For example, you can
|
||||||
add `export GOPATH=$HOME/Documents/golang` to your `.bash_profile`.
|
add `export GOPATH=$HOME/Documents/golang` to your `.bash_profile`.
|
||||||
|
|
|
@ -70,7 +70,7 @@ http://www.packer.io/docs
|
||||||
## Developing Packer
|
## Developing Packer
|
||||||
|
|
||||||
If you wish to work on Packer itself, you'll first need [Go](http://golang.org)
|
If you wish to work on Packer itself, you'll first need [Go](http://golang.org)
|
||||||
installed (version 1.1+ is _required_). Make sure you have Go properly installed,
|
installed (version 1.2+ is _required_). Make sure you have Go properly installed,
|
||||||
including setting up your [GOPATH](http://golang.org/doc/code.html#GOPATH).
|
including setting up your [GOPATH](http://golang.org/doc/code.html#GOPATH).
|
||||||
|
|
||||||
For some additional dependencies, Go needs [Mercurial](http://mercurial.selenic.com/)
|
For some additional dependencies, Go needs [Mercurial](http://mercurial.selenic.com/)
|
||||||
|
|
|
@ -8,6 +8,40 @@ OK_COLOR="\x1b[32;01m"
|
||||||
ERROR_COLOR="\x1b[31;01m"
|
ERROR_COLOR="\x1b[31;01m"
|
||||||
WARN_COLOR="\x1b[33;01m"
|
WARN_COLOR="\x1b[33;01m"
|
||||||
|
|
||||||
|
# http://stackoverflow.com/questions/4023830/bash-how-compare-two-strings-in-version-format
|
||||||
|
verify_go () {
|
||||||
|
if [[ $1 == $2 ]]
|
||||||
|
then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
local IFS=.
|
||||||
|
local i ver1=($1) ver2=($2)
|
||||||
|
|
||||||
|
for ((i=${#ver1[@]}; i<${#ver2[@]}; i++))
|
||||||
|
do
|
||||||
|
ver1[i]=0
|
||||||
|
done
|
||||||
|
for ((i=0; i<${#ver1[@]}; i++))
|
||||||
|
do
|
||||||
|
if [[ -z ${ver2[i]} ]]
|
||||||
|
then
|
||||||
|
ver2[i]=0
|
||||||
|
fi
|
||||||
|
if ((10#${ver1[i]} > 10#${ver2[i]}))
|
||||||
|
then
|
||||||
|
echo -e "${ERROR_COLOR}==> Required Go version $1 not installed. Found $2 instead"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
GO_MINIMUM_VERSION=1.2
|
||||||
|
GO_INSTALLED_VERSION=$(go version | cut -d ' ' -f 3)
|
||||||
|
GO_INSTALLED_VERSION=${GO_INSTALLED_VERSION#"go"}
|
||||||
|
|
||||||
|
echo -e "${OK_COLOR}==> Verifying Go"
|
||||||
|
verify_go $GO_MINIMUM_VERSION $GO_INSTALLED_VERSION
|
||||||
|
|
||||||
# Get the parent directory of where this script is.
|
# Get the parent directory of where this script is.
|
||||||
SOURCE="${BASH_SOURCE[0]}"
|
SOURCE="${BASH_SOURCE[0]}"
|
||||||
while [ -h "$SOURCE" ] ; do SOURCE="$(readlink "$SOURCE")"; done
|
while [ -h "$SOURCE" ] ; do SOURCE="$(readlink "$SOURCE")"; done
|
||||||
|
|
Loading…
Reference in New Issue