#!/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 "; 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'."