scripts: build script
This commit is contained in:
parent
d6d5a97ec9
commit
effe895d22
|
@ -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/
|
Loading…
Reference in New Issue