#!/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 # ============================================================ cd ~ echo "🔄 Mise à jour des listes de paquets..." pacman -Qqe > ~/scripts/pkglist_officiel.txt pacman -Qqm > ~/scripts/pkglist_aur.txt echo "⏳ Staging des fichiers autorisés..." config add . 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 echo "📦 Voici les fichiers qui seront DANS le commit :" echo "-----------------------------------------------------" config status -s echo "-----------------------------------------------------" echo "" 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 config commit -m "$msg" 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