#!/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 else echo "no changes detected on the origin branch" fi echo -e "waiting for changes..." sleep 10 echo -e "\r\033[K" done