mirror of
				https://github.com/optim-enterprises-bv/vault.git
				synced 2025-10-30 18:17:55 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			83 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/env bash
 | |
| #
 | |
| # This script builds the application from source for multiple platforms.
 | |
| 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)
 | |
| 
 | |
| # Determine the arch/os combos we're building for
 | |
| XC_ARCH=${XC_ARCH:-"386 amd64 arm"}
 | |
| XC_OS=${XC_OS:-linux darwin windows freebsd openbsd}
 | |
| 
 | |
| # Store the original GOPATH so we can move the binary to it later
 | |
| ORIGINAL_GOPATH=${GOPATH:-$(go env GOPATH)}
 | |
| GOPATH="$(godep path):$ORIGINAL_GOPATH"
 | |
| case $(uname) in
 | |
|     CYGWIN*)
 | |
|         ORIGINAL_GOPATH="$(cygpath $ORIGINAL_GOPATH)"
 | |
|         ;;
 | |
| esac
 | |
| 
 | |
| # Delete the old dir
 | |
| echo "==> Removing old directory..."
 | |
| rm -f bin/*
 | |
| rm -rf pkg/*
 | |
| mkdir -p bin/
 | |
| 
 | |
| # If its dev mode, only build for ourself
 | |
| if [ "${TF_DEV}x" != "x" ]; then
 | |
|     XC_OS=$(go env GOOS)
 | |
|     XC_ARCH=$(go env GOARCH)
 | |
| fi
 | |
| 
 | |
| # Build!
 | |
| echo "==> Building..."
 | |
| gox \
 | |
|     -os="${XC_OS}" \
 | |
|     -os="!freebsd" \
 | |
|     -os="!openbsd" \
 | |
|     -arch="${XC_ARCH}" \
 | |
|     -ldflags "-X github.com/hashicorp/vault/cli.GitCommit ${GIT_COMMIT}${GIT_DIRTY}" \
 | |
|     -output "pkg/{{.OS}}_{{.Arch}}/vault" \
 | |
|     .
 | |
| 
 | |
| # Move all the compiled things to the $GOPATH/bin
 | |
| OLDIFS=$IFS
 | |
| IFS=: MAIN_GOPATH=($ORIGINAL_GOPATH)
 | |
| IFS=$OLDIFS
 | |
| 
 | |
| # Copy our OS/Arch to the bin/ directory
 | |
| 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
 | |
| 
 | |
| if [ "${TF_DEV}x" = "x" ]; then
 | |
|     # Zip and copy to the dist dir
 | |
|     echo "==> Packaging..."
 | |
|     for PLATFORM in $(find ./pkg -mindepth 1 -maxdepth 1 -type d); do
 | |
|         OSARCH=$(basename ${PLATFORM})
 | |
|         echo "--> ${OSARCH}"
 | |
| 
 | |
|         pushd $PLATFORM >/dev/null 2>&1
 | |
|         zip ../${OSARCH}.zip ./*
 | |
|         popd >/dev/null 2>&1
 | |
|     done
 | |
| fi
 | |
| 
 | |
| # Done!
 | |
| echo
 | |
| echo "==> Results:"
 | |
| ls -hl bin/
 | 
