#!/bin/bash set -o errexit # older version Git don't support --short ! if [ -d ".git" ];then #branch=`git symbolic-ref --short -q HEAD` branch=$(git symbolic-ref -q HEAD | awk -F'/' '{print $3;}') cid=$(git rev-parse HEAD) else branch="unknown" cid="0.0" fi branch=$branch","$cid output=./bin/ rm -rf ${output} # make sure we're in the directory where the script lives SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" cd "$SCRIPT_DIR" GOPATH=$(pwd) export GOPATH info="redis-shake/common.Version=$branch" # golang version goversion=$(go version | awk -F' ' '{print $3;}') info=$info","$goversion bigVersion=$(echo $goversion | awk -F'[o.]' '{print $2}') midVersion=$(echo $goversion | awk -F'[o.]' '{print $3}') if [ $bigVersion -lt "1" -o $bigVersion -eq "1" -a $midVersion -lt "6" ]; then echo "go version[$goversion] must >= 1.6" exit 1 fi t=$(date "+%Y-%m-%d_%H:%M:%S") info=$info","$t echo "[ BUILD RELEASE ]" run_builder='go build -v' goos=(linux darwin windows) for g in "${goos[@]}"; do export GOOS=$g echo "try build goos=$g" $run_builder -ldflags "-X $info" -o "${output}/redis-shake.$g" "./src/redis-shake/main/main.go" echo "build $g successfully!" done # copy scripts cp scripts/start.sh ${output}/ cp scripts/stop.sh ${output}/ cp -r tools ${output}/ cp -r test ${output}/ if [ "Linux" == "$(uname -s)" ];then # hypervisor gcc -Wall -O3 scripts/hypervisor.c -o ${output}/hypervisor -lpthread elif [ "Darwin" == "$(uname -s)" ];then printf "\\nWARNING !!! MacOS doesn't supply hypervisor\\n" fi