From 39e75fe1f14385f37bdd9bc05f75067ef621b10c Mon Sep 17 00:00:00 2001 From: steckbrief Date: Tue, 8 May 2018 21:23:00 +0200 Subject: Update Hook --- update-hook.sh | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 update-hook.sh diff --git a/update-hook.sh b/update-hook.sh new file mode 100644 index 0000000..ff4d20b --- /dev/null +++ b/update-hook.sh @@ -0,0 +1,77 @@ +#!/bin/sh +# +# Update Hook to ensure the version code is increased in a new tag +# + +# --- Command line +refname="$1" +oldrev="$2" +newrev="$3" + +# --- Safety check +if [ -z "$GIT_DIR" ]; then + echo "Don't run this script from the command line." >&2 + echo " (if you want, you could supply GIT_DIR then run" >&2 + echo " $0 )" >&2 + exit 1 +fi + +if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then + echo "usage: $0 " >&2 + exit 1 +fi + +# --- Check types +# if $newrev is 0000...0000, it's a commit to delete a ref. +zero="0000000000000000000000000000000000000000" +if [ "$newrev" = "$zero" ]; then + newrev_type=delete +else + newrev_type=$(git cat-file -t $newrev) +fi + +case "$refname","$newrev_type" in + refs/tags/*,commit) + # un-annotated tag + oldVersionCode=`git archive $(git describe --tags) build.gradle | tar -xO | less - | grep versionCode | awk '{print $2}' 2> /dev/null` + + if [[ "$oldVersionCode" =~ ^[0-9]+$ ]] + then + echo "*** Old version code is not an integer" >&2 + exit 1 + fi + newVersionCode=`git archive $newrev build.gradle | tar -xO | less - | grep versionCode | awk '{print $2}' 2> /dev/null` + if [[ "$newVersionCode" =~ ^[0-9]+$ ]] + then + echo "*** New version code is not an integer" >&2 + exit 1 + fi + if [ "$oldVersionCode" = "$newVersionCode" ]; then + echo "*** A new version code is needed to commit" >&2 + exit 1 + fi + ;; + refs/tags/*,tag) + # annotated tag + oldVersionCode=`git archive $(git describe --tags) build.gradle | tar -xO | less - | grep versionCode | awk '{print $2}' 2> /dev/null` + + if [[ "$oldVersionCode" =~ ^[0-9]+$ ]] + then + echo "*** Old version code is not an integer" >&2 + exit 1 + fi + newVersionCode=`git archive $newrev build.gradle | tar -xO | less - | grep versionCode | awk '{print $2}' 2> /dev/null` + if [[ "$newVersionCode" =~ ^[0-9]+$ ]] + then + echo "*** New version code is not an integer" >&2 + exit 1 + fi + if [ "$oldVersionCode" = "$newVersionCode" ]; then + echo "*** A new version code is needed to commit" >&2 + exit 1 + fi + ;; +esac + +# --- Finished +exit 0 \ No newline at end of file -- cgit v1.2.3