From f0149fa49521dcda32a71465d1039487e37bcaa9 Mon Sep 17 00:00:00 2001 From: Cheng Sun Date: Fri, 2 Jan 2015 13:41:54 +0000 Subject: [PATCH] Update build script Adapted from Packer's build script --- build.sh | 45 +++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 43 insertions(+), 2 deletions(-) diff --git a/build.sh b/build.sh index 21a27b0..4fdbcc3 100755 --- a/build.sh +++ b/build.sh @@ -1,8 +1,49 @@ +#!/bin/bash +# +# This script builds the application from source for multiple platforms. +# Adapted from from packer/scripts/build.sh + +# Determine the arch/os combos we're building for XC_OS=${XC_OS:-$(go env GOOS)} XC_ARCH=${XC_ARCH:-$(go env GOARCH)} +# Install dependencies +echo "==> Getting dependencies..." +go get ./... + +# Delete the old dir +echo "==> Removing old directory..." +rm -f bin/* +rm -rf pkg/* +mkdir -p bin/ + gox \ -os="${XC_OS}" \ -arch="${XC_ARCH}" \ - -output "build/{{.OS}}_{{.Arch}}/packer-{{.Dir}}" \ - ./... + -output "pkg/{{.OS}}_{{.Arch}}/packer-{{.Dir}}" \ + ./... \ + || exit 1 + +# Move all the compiled things to the $GOPATH/bin +GOPATH=${GOPATH:-$(go env GOPATH)} +case $(uname) in + CYGWIN*) + GOPATH="$(cygpath $GOPATH)" + ;; +esac +OLDIFS=$IFS +IFS=: MAIN_GOPATH=($GOPATH) +IFS=$OLDIFS + +# Copy our OS/Arch to the bin/ directory +echo "==> Copying binaries for this platform..." +DEV_PLATFORM="./pkg/$(go env GOOS)_$(go env GOARCH)" +for F in $(find ${DEV_PLATFORM} -mindepth 1 -maxdepth 1 -type f); do + cp ${F} bin/ + cp ${F} ${MAIN_GOPATH}/bin/ +done + +# Done! +echo +echo "==> Results:" +ls -hl bin/