diff --git a/bin/git-pull-and-if-origin-changed-run-tests b/bin/git-pull-and-if-origin-changed-run-tests index 3314ac43..1fd1b1ed 100755 --- a/bin/git-pull-and-if-origin-changed-run-tests +++ b/bin/git-pull-and-if-origin-changed-run-tests @@ -1,53 +1,33 @@ #!/bin/bash -# waits for commits on any branch on origin, pulls and build it +# waits for commits on any branch on origin, checks it out and builds it # Configuration: Set the remote repository name and check interval BUILD_CMD="gw-test" # Placeholder for the build command -# Fetch the latest updates from the origin -git fetch origin - -# Keep track of local branches at the start -local_branches=$(git branch -r | sed 's/origin\///') - while true; do - echo "Checking for new branches..." - - # Fetch the latest updates from the origin + echo "Checking for new commits on any branch ..." git fetch origin + branch_with_new_commits=`git fetch origin >/dev/null; git for-each-ref --format='%(refname:short) %(upstream:track)' refs/heads | grep '\[behind' | cut -d'[' -f1 | head -n1` - # List the remote branches after fetching and compare with local branches - new_branches=$(git branch -r | sed 's/origin\///' | grep -Fxv "$local_branches") + if [ -n "$branch_with_new_commits" ]; then + echo "checking out branch: $branch_with_new_commits" + git checkout -b "$branch_with_new_commits" "origin/$branch_with_new_commits" - if [ -n "$new_branches" ]; then - for branch in $new_branches; do - echo "New branch detected: $branch" - - # Check out the new branch locally - git checkout -b "$branch" "origin/$branch" - - # Placeholder for build process (replace $BUILD_CMD with actual build steps) - echo "Building branch $branch..." - # eval "$BUILD_CMD" - - # Update the local branch list - local_branches="$local_branches $branch" - done - else - echo "No new branches found." + echo "building ..." + eval "$BUILD_CMD" 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 checking for changes" + 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 checking for changes" done