#!/bin/bash set -Eeuo pipefail NAME="wimip" GIT_SHA="$(git --no-pager describe --always --dirty)" BUILD_TIME="$(date '+%s')" LFLAGS="-X main.gitsha=$GIT_SHA -X main.compiled=$BUILD_TIME" VERSION="${VERSION:-$GIT_SHA}" echo "Version: $VERSION" release() { echo "Building $NAME-$VERSION for $GOOS/$GOARCH (${GOARM:-default})..." if [ "$GOOS" == "windows" ]; then EXT=".exe" else EXT="" fi if [ "$GOARCH" == "arm" -a -n "${GOARM:-}" ]; then ARM_EXT="-armv$GOARM" else ARM_EXT="" fi export GOARCH GOOS if [ -n "${GOARM:-}" ]; then export GOARM fi CGO_ENABLED=0 go build -ldflags " -w $LFLAGS" -o "bin/$NAME$EXT" cli/main.go tar -czf "release/$NAME-$GOOS-$GOARCH$ARM_EXT.tar.gz" -C bin/ "$NAME$EXT" (cd release && sha1sum "$NAME-$GOOS-$GOARCH$ARM_EXT.tar.gz" > "$NAME-$GOOS-$GOARCH$ARM_EXT.tar.gz.sha1") rm -f "bin/$NAME$EXT" } rm -rf bin release mkdir -p bin release go generate ./... while read configuration; do unset GOOS unset GOARCH unset GOARM eval "$configuration" release done <