diff --git a/bin/git-pull-and-run-if-origin-changed b/bin/git-pull-and-run-if-origin-changed new file mode 100755 index 00000000..48c5f22e --- /dev/null +++ b/bin/git-pull-and-run-if-origin-changed @@ -0,0 +1,32 @@ +#!/bin/bash + +if [ -z "$1" ]; then + echo "command missing in arguments" >&2 + exit 1 +fi + +# 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 "pulling changes from origin" + git pull origin $BRANCH + + # run the command + echo "Running $*" + "$@" + else + echo "no changes detected on the origin branch" + fi + + echo "waiting for 1 minute before checking again..." + sleep 60 +done