2013-11-18 13:28:45 -05:00
|
|
|
#!/bin/bash
|
|
|
|
#
|
|
|
|
# This script only builds the application from source.
|
|
|
|
set -e
|
|
|
|
|
|
|
|
NO_COLOR="\x1b[0m"
|
|
|
|
OK_COLOR="\x1b[32;01m"
|
|
|
|
ERROR_COLOR="\x1b[31;01m"
|
|
|
|
WARN_COLOR="\x1b[33;01m"
|
|
|
|
|
2013-12-16 08:22:37 -05:00
|
|
|
# http://stackoverflow.com/questions/4023830/bash-how-compare-two-strings-in-version-format
|
|
|
|
verify_go () {
|
2014-04-26 15:46:09 -04:00
|
|
|
if [[ $1 == $2 ]]; then
|
2013-12-16 08:22:37 -05:00
|
|
|
return 0
|
|
|
|
fi
|
2014-04-26 15:46:09 -04:00
|
|
|
|
2013-12-16 08:22:37 -05:00
|
|
|
local IFS=.
|
2014-03-13 07:14:06 -04:00
|
|
|
local i ver1=($1) ver2=($2)
|
2013-12-16 08:22:37 -05:00
|
|
|
|
2014-04-26 15:46:09 -04:00
|
|
|
for ((i=${#ver1[@]}; i<${#ver2[@]}; i++)); do
|
2013-12-16 08:22:37 -05:00
|
|
|
ver1[i]=0
|
|
|
|
done
|
2014-04-26 15:46:09 -04:00
|
|
|
|
|
|
|
for ((i=0; i<${#ver1[@]}; i++)); do
|
|
|
|
if [[ -z ${ver2[i]} ]]; then
|
2013-12-16 08:22:37 -05:00
|
|
|
ver2[i]=0
|
|
|
|
fi
|
2014-04-26 15:46:09 -04:00
|
|
|
if ((10#${ver1[i]} > 10#${ver2[i]})); then
|
2013-12-16 08:22:37 -05:00
|
|
|
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
|
|
|
|
|
2013-11-18 13:28:45 -05:00
|
|
|
# Get the parent directory of where this script is.
|
|
|
|
SOURCE="${BASH_SOURCE[0]}"
|
|
|
|
while [ -h "$SOURCE" ] ; do SOURCE="$(readlink "$SOURCE")"; done
|
|
|
|
DIR="$( cd -P "$( dirname "$SOURCE" )/.." && pwd )"
|
|
|
|
|
|
|
|
# Change into that directory
|
|
|
|
cd $DIR
|
|
|
|
|
|
|
|
# Compile the thing
|
|
|
|
export XC_ARCH=$(go env GOARCH)
|
|
|
|
export XC_OS=$(go env GOOS)
|
|
|
|
./scripts/compile.sh
|
|
|
|
|
|
|
|
# Move all the compiled things to the PATH
|
2014-01-16 18:52:42 -05:00
|
|
|
case $(uname) in
|
|
|
|
CYGWIN*)
|
|
|
|
GOPATH="$(cygpath $GOPATH)"
|
|
|
|
;;
|
|
|
|
esac
|
2014-01-10 10:35:07 -05:00
|
|
|
IFS=: MAIN_GOPATH=( $GOPATH )
|
|
|
|
cp pkg/${XC_OS}_${XC_ARCH}/* ${MAIN_GOPATH}/bin
|
2014-04-26 15:49:41 -04:00
|
|
|
cp pkg/${XC_OS}_${XC_ARCH}/* ./bin
|