diff options
Diffstat (limited to 'giteapushv3.sh')
-rwxr-xr-x | giteapushv3.sh | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/giteapushv3.sh b/giteapushv3.sh new file mode 100755 index 0000000..c2eb40f --- /dev/null +++ b/giteapushv3.sh @@ -0,0 +1,41 @@ +#!/bin/bash +# Genesis Radio Git Auto-Push +# With Auto-Retry if Push Fails + +# Move to the top of the git repo automatically +cd "$(git rev-parse --show-toplevel)" || { echo "â Not inside a Git repo. Exiting."; exit 1; } + +# Log the current location +echo "đ Working in $(pwd)" + +# Stage all changes (new, modified, deleted) +git add -A + +# Check if there's anything to commit +if ! git diff --cached --quiet; then + TIMESTAMP=$(date +"%Y-%m-%d %H:%M:%S") + git commit -m "Auto-commit from giteapush.sh at $TIMESTAMP" + + echo "đĄ Attempting to push to origin/main..." + + # Push with retry up to 3 times + tries=0 + max_tries=3 + until git push origin main; do + tries=$((tries+1)) + if [ "$tries" -ge "$max_tries" ]; then + echo "â Push failed after $max_tries attempts. Manual intervention needed." + exit 1 + fi + echo "â ī¸ Push failed. Retrying ($tries/$max_tries) in 5 seconds..." + sleep 5 + done + + echo "â
Changes committed and pushed successfully at $TIMESTAMP" +else + echo "âšī¸ No changes to commit." +fi + +# Always show repo status at the end +echo "đ Repo status:" +git status -sb |