Files
arch-dotfiles/scripts/dotpush.sh

54 lines
1.6 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
# ============================================================
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