🚀 Patch auto

This commit is contained in:
karim hassan
2025-08-24 15:13:31 +00:00
parent 5da64c727c
commit e601f445cf
2 changed files with 35 additions and 40 deletions

BIN
.DS_Store vendored

Binary file not shown.

View File

@@ -1,52 +1,47 @@
#!/usr/bin/env bash #!/usr/bin/env bash
set -euo pipefail set -euo pipefail
# --- options --- MSG="${1:-🚀 Patch auto}"
MSG="${1:-}" # message passé en argument SCRIPT_NAME="$(basename "$0")"
TIMESTAMP="$(date '+%Y-%m-%d %H:%M:%S')"
# --- préchecks --- # 0) pré-checks
git rev-parse --is-inside-work-tree >/dev/null 2>&1 || { git rev-parse --is-inside-work-tree >/dev/null 2>&1 || {
echo "❌ Lance ce script depuis un dépôt git (racine du projet)." echo "❌ Lance ce script depuis la racine d'un dépôt git."; exit 1; }
exit 1
}
# Branche courante # 1) se placer/Créer la branche main
BRANCH="$(git rev-parse --abbrev-ref HEAD)" if git show-ref --verify --quiet refs/heads/main; then
git checkout main
# Remote else
if ! git remote get-url origin >/dev/null 2>&1; then git checkout -b main
echo "❌ Aucun remote 'origin' configuré. Ajoute-le puis relance."
echo " Exemple: git remote add origin <URL_SSH_OU_HTTPS>"
exit 1
fi fi
# --- add + commit si nécessaire --- # 2) s'assurer que 'origin' existe
# Vérifie si des changements existent (tracked ou non) git remote get-url origin >/dev/null 2>&1 || {
if git status --porcelain | grep -q .; then echo "❌ Pas de remote 'origin'. Fais: git remote add origin <URL>"; exit 1; }
git add .
# message de commit # 3) s'assurer que le script est committé même s'il est ignoré
if [ -z "$MSG" ]; then # - check s'il est ignoré
MSG="🚀 Patch auto — ${TIMESTAMP}" if git check-ignore -q "$SCRIPT_NAME"; then
fi echo " $SCRIPT_NAME est ignoré par .gitignore → ajout forcé (-f)"
# commit (si rien de nouveau, git renverra un code !=0) git add -f "$SCRIPT_NAME"
if ! git commit -m "$MSG" >/dev/null 2>&1; then fi
echo " Rien de nouveau à committer après 'git add .'"
else # 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" echo "✅ Commit créé: $MSG"
fi
else
echo " Aucun changement détecté (workspace propre)."
fi fi
# --- push --- # 6) push sur main (crée lupstream si besoin)
# Si upstream pas configuré, push avec -u if git rev-parse --abbrev-ref main@{u} >/dev/null 2>&1; then
if git rev-parse --abbrev-ref "@{u}" >/dev/null 2>&1; then git push origin main
echo "⇡ Pushing vers origin/$BRANCH"
git push origin "$BRANCH"
else else
echo "⇡ Première publication de la branche '$BRANCH' (upstream)…" git push -u origin main
git push -u origin "$BRANCH"
fi fi
echo "✅ Terminé." echo "✅ Push terminé sur 'origin/main'."