Доабвил скрипт автокоммита субмодулей. #7
Some checks reported errors
continuous-integration/drone/push Build encountered an error
Some checks reported errors
continuous-integration/drone/push Build encountered an error
This commit is contained in:
parent
a280ffc9db
commit
18d8f59673
91
commit-all.sh
Executable file
91
commit-all.sh
Executable file
@ -0,0 +1,91 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Check if commit message is provided
|
||||
if [ -z "$1" ]; then
|
||||
echo "Error: Commit message is required"
|
||||
echo "Usage: ./commit-all.sh \"Your commit message\""
|
||||
exit 1
|
||||
fi
|
||||
|
||||
COMMIT_MSG="$1"
|
||||
|
||||
# Get list of submodules
|
||||
SUBMODULES=$(git config --file .gitmodules --get-regexp path | awk '{ print $2 }')
|
||||
|
||||
if [ -z "$SUBMODULES" ]; then
|
||||
echo "No submodules found in this repository"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "🚀 Starting commit and push for all submodules..."
|
||||
echo "📝 Commit message: $COMMIT_MSG"
|
||||
echo ""
|
||||
|
||||
# Counter for tracking results
|
||||
SUCCESS_COUNT=0
|
||||
FAILED_COUNT=0
|
||||
SKIPPED_COUNT=0
|
||||
|
||||
# Iterate through each submodule
|
||||
for submodule in $SUBMODULES; do
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
echo "📦 Processing submodule: $submodule"
|
||||
|
||||
if [ ! -d "$submodule" ]; then
|
||||
echo "⚠️ Warning: Submodule directory not found, skipping..."
|
||||
SKIPPED_COUNT=$((SKIPPED_COUNT + 1))
|
||||
continue
|
||||
fi
|
||||
|
||||
cd "$submodule" || {
|
||||
echo "❌ Failed to enter directory $submodule"
|
||||
FAILED_COUNT=$((FAILED_COUNT + 1))
|
||||
cd - > /dev/null
|
||||
continue
|
||||
}
|
||||
|
||||
# Check if there are any changes
|
||||
if [ -z "$(git status --porcelain)" ]; then
|
||||
echo "ℹ️ No changes to commit, skipping..."
|
||||
SKIPPED_COUNT=$((SKIPPED_COUNT + 1))
|
||||
cd - > /dev/null
|
||||
continue
|
||||
fi
|
||||
|
||||
# Add all changes
|
||||
echo " → git add -A"
|
||||
git add -A
|
||||
|
||||
# Commit changes
|
||||
echo " → git commit"
|
||||
if git commit -m "$COMMIT_MSG"; then
|
||||
# Push to main branch
|
||||
echo " → git push origin main"
|
||||
if git push origin main; then
|
||||
echo "✅ Successfully committed and pushed"
|
||||
SUCCESS_COUNT=$((SUCCESS_COUNT + 1))
|
||||
else
|
||||
echo "❌ Failed to push"
|
||||
FAILED_COUNT=$((FAILED_COUNT + 1))
|
||||
fi
|
||||
else
|
||||
echo "❌ Failed to commit"
|
||||
FAILED_COUNT=$((FAILED_COUNT + 1))
|
||||
fi
|
||||
|
||||
cd - > /dev/null
|
||||
echo ""
|
||||
done
|
||||
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
echo "📊 Summary:"
|
||||
echo " ✅ Success: $SUCCESS_COUNT"
|
||||
echo " ❌ Failed: $FAILED_COUNT"
|
||||
echo " ⏭️ Skipped: $SKIPPED_COUNT"
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
|
||||
if [ $FAILED_COUNT -gt 0 ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
exit 0
|
||||
Loading…
Reference in New Issue
Block a user