Files
arch-dotfiles/scripts/dotpush.sh
2026-06-18 10:10:37 +02:00

56 lines
1.7 KiB
Bash
Executable File

#!/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