42 lines
1.1 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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