scripts: build script

This commit is contained in:
Mitchell Hashimoto 2014-05-29 17:51:11 -07:00
parent d6d5a97ec9
commit effe895d22
1 changed files with 47 additions and 0 deletions

47
scripts/build.sh Normal file
View File

@ -0,0 +1,47 @@
#!/bin/bash
#
# This script builds the application from source for only this platform.
set -e
# 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
# Get the git commit
GIT_COMMIT=$(git rev-parse HEAD)
GIT_DIRTY=$(test -n "`git status --porcelain`" && echo "+CHANGES" || true)
# If we're building on Windows, specify an extension
EXTENSION=""
if [ "$(go env GOOS)" = "windows" ]; then
EXTENSION=".exe"
fi
GOPATHSINGLE=${GOPATH%%:*}
if [ "$(go env GOOS)" = "windows" ]; then
GOPATHSINGLE=${GOPATH%%;*}
fi
# Install dependencies
echo "--> Getting dependencies..."
go get ./...
# Build!
echo "--> Building..."
gox \
-os="$(go env GOOS)" \
-arch="$(go env GOARCH)" \
-ldflags "-X main.GitCommit ${GIT_COMMIT}${GIT_DIRTY}" \
-output "bin/terraform-{{.Dir}}" \
./...
mv bin/terraform-terraform${EXTENSION} bin/terraform${EXTENSION}
cp bin/terraform* ${GOPATHSINGLE}/bin
# Done!
echo
echo "--> Results:"
ls -l bin/