#!/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) s'assurer que 'origin' existe git remote get-url origin >/dev/null 2>&1 || { echo "❌ Pas de remote 'origin'. Fais: git remote add origin "; exit 1; } # 3) s'assurer que le script est committé même s'il est ignoré # - check s'il est ignoré if git check-ignore -q "$SCRIPT_NAME"; then echo "ℹ️ $SCRIPT_NAME est ignoré par .gitignore → ajout forcé (-f)" git add -f "$SCRIPT_NAME" fi # 4) stage global (ajoute le reste) git add -A # 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 sur main (crée l’upstream si besoin) 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'."