From 9496c07049b47b8dfa19db617947ca29037b843b Mon Sep 17 00:00:00 2001 From: MatMoul Date: Sun, 10 May 2026 00:02:04 +0200 Subject: [PATCH] feat: add publish script to merge dev changes into main --- _publish.sh | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100755 _publish.sh diff --git a/_publish.sh b/_publish.sh new file mode 100755 index 0000000..a2003ad --- /dev/null +++ b/_publish.sh @@ -0,0 +1,59 @@ +#!/bin/bash + +set -e + +current_branch=$(git branch --show-current) + +if [ -z "$current_branch" ]; then + echo "Erreur : impossible de détecter la branche courante." + exit 1 +fi + +if [ "$current_branch" = "main" ]; then + echo "Erreur : ce script ne peut pas être exécuté depuis la branche main." + exit 1 +fi + +start_branch="$current_branch" + +cleanup() { + if [ "$(git branch --show-current)" != "$start_branch" ]; then + git checkout "$start_branch" >/dev/null 2>&1 || true + fi +} + +merge_or_fail() { + source_branch="$1" + target_branch="$2" + + if ! git merge "$source_branch"; then + echo "Erreur : conflit lors du merge de $source_branch vers $target_branch." + echo "Résolvez les conflits manuellement, puis relancez le script." + exit 1 + fi +} + +trap cleanup EXIT + +echo "Branche courante détectée : $current_branch" +read -r -p "Confirmer l'exécution sur cette branche ? [y/N] " confirm +case "$confirm" in + y|Y|yes|YES) + ;; + *) + echo "Annulé." + exit 1 + ;; +esac + +if [ "$current_branch" != "dev" ]; then + git checkout dev + merge_or_fail "$current_branch" "dev" + git push + current_branch="dev" +fi + +git checkout main +merge_or_fail dev main +git push +git checkout dev