#!/bin/bash # get the current branch name BRANCH=$(git rev-parse --abbrev-ref HEAD) while true; do # get the latest commit hashes from origin and local git fetch origin LOCAL=$(git rev-parse HEAD) REMOTE=$(git rev-parse origin/$BRANCH) # check if the local branch differs from the remote branch if [ "$LOCAL" != "$REMOTE" ]; then echo "local $LOCAL differs from remote $REMOTE => pulling changes from origin" git pull origin $BRANCH # run the command echo "Running ./gradlew test" source .aliases # only variables, aliases are not expanded in scripts ./gradlew test fi # wait 10s with a little animation echo -e -n " waiting for changes (/) ..." sleep 2 echo -e -n "\r\033[K waiting for changes (-) ..." sleep 2 echo -e -n "\r\033[K waiting for changes (\) ..." sleep 2 echo -e -n "\r\033[K waiting for changes (|) ..." sleep 2 echo -e -n "\r\033[K waiting for changes ( ) ... " sleep 2 echo -e -n "\r\033[K" done