From 4205e4bb98ed22c3c0d47351f476b1074b86c569 Mon Sep 17 00:00:00 2001
From: Bruno Oliveira da Silva <bruno@abstractj.org>
Date: Mon, 2 Sep 2019 14:04:50 -0300
Subject: [PATCH] [KEYCLOAK-11249] Release script for Gatekeeper is broken

---
 Makefile   |  7 -------
 release.sh | 38 +++++++++++++++++++++++++++++++++++---
 2 files changed, 35 insertions(+), 10 deletions(-)

diff --git a/Makefile b/Makefile
index d83ed4c..710df40 100644
--- a/Makefile
+++ b/Makefile
@@ -27,13 +27,6 @@ build: golang
 	@mkdir -p bin
 	go build -ldflags "${LFLAGS}" -o bin/${NAME}
 
-release: clean golang
-	mkdir -p release
-	$(foreach GOOS, $(PLATFORMS),\
-	$(foreach GOARCH, $(ARCHITECTURES), $(shell [ $(GOOS) = "windows" ]  && EXT=".exe"; env GOOS=$(GOOS) GOARCH=$(GOARCH) CGO_ENABLED=0 go build -a -tags netgo -ldflags "-w ${LFLAGS}" -o bin/${NAME}$$EXT; \
-	tar -czvf release/${NAME}-$(GOOS)-$(GOARCH).tar.gz -C bin/ ${NAME}$$EXT >/dev/null; \
-  sha1sum release/${NAME}-$(GOOS)-$(GOARCH).tar.gz | cut -d " " -f1 > release/${NAME}-$(GOOS)-$(GOARCH).tar.gz.sha1 )))
-
 static: golang
 	@echo "--> Compiling the static binary"
 	@mkdir -p bin
diff --git a/release.sh b/release.sh
index c7960eb..28a6e25 100755
--- a/release.sh
+++ b/release.sh
@@ -1,4 +1,10 @@
 #!/bin/bash -e
+NAME="keycloak-gatekeeper"
+PLATFORMS="darwin linux windows"
+ARCHITECTURES="amd64"
+GIT_SHA=$(git --no-pager describe --always --dirty)
+BUILD_TIME=$(date '+%s')
+LFLAGS="-X main.gitsha=$GIT_SHA -X main.compiled=$BUILD_TIME"
 
 DIR="$PWD"
 VERSION=`./get-version.sh`
@@ -6,12 +12,38 @@ echo "Version: $VERSION"
 
 TMP=`mktemp -d`
 
+# Perform some clean up before building it
+clean() {
+  rm -rf ./bin/* 2>/dev/null
+  rm -rf ./release/* 2>/dev/null
+}
+
+release() {
+  mkdir -p release
+  for PLATFORM in $PLATFORMS; do
+    EXT=""
+    if [ "$PLATFORM" == "windows" ]; then
+      EXT=".exe"
+    fi
+    for ARCH in $ARCHITECTURES; do
+      env GOOS=$PLATFORM GOARCH=$ARCH CGO_ENABLED=0 go build -a -tags netgo -ldflags " -w $LFLAGS" -o bin/$NAME$EXT
+      tar -czvf release/"$NAME-$PLATFORM-$ARCH".tar.gz -C bin/ $NAME$EXT >/dev/null
+      sha1sum release/"$NAME-$PLATFORM-$ARCH".tar.gz | cut -d " " -f1 > release/"$NAME-$GOOS-$GOARCH".tar.gz.sha1
+      # Test if tar file is not corrupted
+      if ! tar -tf release/"$NAME-$PLATFORM-$ARCH".tar.gz &>/dev/null;then 
+        echo "Corrupted tar file"
+        exit 1
+      fi
+    done
+  done
+}
+
 echo "------------------------------------------------------------------------------------------------------------"
-echo "Building:"
+echo "Building: $NAME-$VERSION"
 echo ""
 
-make release
-
+clean
+release
 
 echo "------------------------------------------------------------------------------------------------------------"
 echo "Upload to jboss.org:"
-- 
GitLab