51 lines
1.2 KiB
Bash
Executable File
51 lines
1.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
||
set -euo pipefail
|
||
|
||
MSG="${1:-🚀 Patch auto}"
|
||
SCRIPT_NAME="$(basename "$0")"
|
||
|
||
# 0) pré-checks
|
||
git rev-parse --is-inside-work-tree >/dev/null 2>&1 || {
|
||
echo "❌ Lance ce script depuis la racine d'un dépôt git."; exit 1; }
|
||
|
||
# 1) se placer/Créer la branche main
|
||
if git show-ref --verify --quiet refs/heads/main; then
|
||
git checkout main
|
||
else
|
||
git checkout -b main
|
||
fi
|
||
|
||
# 2) vérifier remote
|
||
git remote get-url origin >/dev/null 2>&1 || {
|
||
echo "❌ Pas de remote 'origin'. Fais: git remote add origin <URL>"; exit 1; }
|
||
|
||
# 3) forcer l’ajout du script même s’il est ignoré
|
||
if git check-ignore -q "$SCRIPT_NAME"; then
|
||
echo "ℹ️ $SCRIPT_NAME est ignoré par .gitignore → ajout forcé"
|
||
git add -f "$SCRIPT_NAME"
|
||
else
|
||
git add "$SCRIPT_NAME"
|
||
fi
|
||
|
||
# 4) ajouter tout le reste sauf les fichiers indésirables
|
||
git add . \
|
||
':!*.DS_Store' \
|
||
':!*.AppleDouble' \
|
||
':!*.LSOverride'
|
||
|
||
# 5) commit si nécessaire
|
||
if git diff --cached --quiet; then
|
||
echo "ℹ️ Rien à commit."
|
||
else
|
||
git commit -m "$MSG"
|
||
echo "✅ Commit créé: $MSG"
|
||
fi
|
||
|
||
# 6) push
|
||
if git rev-parse --abbrev-ref main@{u} >/dev/null 2>&1; then
|
||
git push origin main
|
||
else
|
||
git push -u origin main
|
||
fi
|
||
|
||
echo "✅ Push terminé sur 'origin/main'." |