diff --git a/rebuild_if_needed.sh b/rebuild_if_needed.sh new file mode 100755 index 0000000000000000000000000000000000000000..ff8811e394eb83594c65c2c48a07e1b7795735a5 --- /dev/null +++ b/rebuild_if_needed.sh @@ -0,0 +1,29 @@ +#!/bin/sh + +git remote update > /dev/null 2>&1 + +needsUpdate () { + UPSTREAM=${1:-'@{u}'} + LOCAL=$(git rev-parse @) + REMOTE=$(git rev-parse "$UPSTREAM") + BASE=$(git merge-base @ "$UPSTREAM") + + if [ $LOCAL = $REMOTE ]; then + return 1 + #echo "Up-to-date" + elif [ $LOCAL = $BASE ]; then + return 0 + #echo "Need to pull" + #elif [ $REMOTE = $BASE ]; then + #echo "Need to push" + #else + #echo "Diverged" + fi + return 1 +} + +if needsUpdate; then + git pull ; mvn clean install +else + echo "No rebuild is needed." +fi