#!/usr/bin/env zsh # ============================================================ # Définition locale de la commande config # ============================================================ config() { /usr/bin/git --git-dir="$HOME/.dotfiles" --work-tree="$HOME" "$@" } # ============================================================ # Script de sauvegarde interactif (ordre corrigé) # ============================================================ cd ~ # 1. Stager TOUS les fichiers autorisés par la whitelist echo "⏳ Staging des fichiers autorisés..." config add . # 2. Vérifier ce qui est EFFECTIVEMENT dans le stage (prêt à être commité) local staged_changes=$(config status -s) if [[ -z "$staged_changes" ]]; then echo "📭 Aucun fichier n'a été ajouté au stage (vérifiez votre .dotfilesignore)." echo " Rien à committer." exit 0 fi # 3. Afficher le contenu du stage (ce qui va VRAIMENT partir) echo "📦 Voici les fichiers qui seront DANS le commit :" echo "-----------------------------------------------------" config status -s echo "-----------------------------------------------------" echo "" # 4. Demander le message de commit echo -n "✏️ Entrez le message de commit (ou Entrée pour auto) : " read -r msg if [[ -z "$msg" ]]; then msg="Sauvegarde auto $(date '+%Y-%m-%d %H:%M')" echo "⏩ Message auto : \"$msg\"" fi # 5. Commiter config commit -m "$msg" # 6. Pousser if config remote | grep -q origin; then echo "🚀 Push vers origin master..." config push origin master echo "✅ Sauvegarde terminée !" else echo "⚠️ Aucun remote 'origin' configuré." echo " Ajoutez-le avec : config remote add origin git@github.com:votre-pseudo/dotfiles.git" fi