From c3c16da1a357b32c49972331cb85ef889b4a01da Mon Sep 17 00:00:00 2001 From: Johnny Date: Thu, 14 Aug 2025 07:23:36 +0000 Subject: [PATCH] Actualiser gnome_extension.sh --- gnome_extension.sh | 64 +++++++++++++++++++++++----------------------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/gnome_extension.sh b/gnome_extension.sh index 5a07ac2..9dc2b00 100644 --- a/gnome_extension.sh +++ b/gnome_extension.sh @@ -1,7 +1,7 @@ #!/bin/bash # Script de sauvegarde et restauration des extensions GNOME -# Auteur: Fontaine Johnny +# Auteur: Assistant Claude # Version: 1.0 # Couleurs pour l'affichage @@ -36,40 +36,40 @@ print_error() { # Fonction pour vérifier les prérequis check_requirements() { print_info "Vérification des prérequis..." - + # Vérifier si GNOME Shell est en cours d'exécution if ! pgrep -x "gnome-shell" > /dev/null; then print_warning "GNOME Shell ne semble pas être en cours d'exécution" fi - + # Vérifier si dconf est installé if ! command -v dconf &> /dev/null; then print_error "dconf n'est pas installé. Veuillez l'installer avec: sudo apt install dconf-cli" exit 1 fi - + # Vérifier si gsettings est disponible if ! command -v gsettings &> /dev/null; then print_error "gsettings n'est pas disponible" exit 1 fi - + print_success "Prérequis vérifiés" } # Fonction de sauvegarde backup_extensions() { print_info "Début de la sauvegarde des extensions GNOME..." - + # Créer le répertoire de sauvegarde mkdir -p "$BACKUP_DIR" - + # Date de la sauvegarde BACKUP_DATE=$(date +"%Y%m%d_%H%M%S") BACKUP_FILE="$BACKUP_DIR/gnome-extensions-$BACKUP_DATE.tar.gz" SETTINGS_FILE="$BACKUP_DIR/gnome-settings-$BACKUP_DATE.dconf" EXTENSIONS_LIST="$BACKUP_DIR/extensions-list-$BACKUP_DATE.txt" - + # Sauvegarder les extensions installées if [ -d "$EXTENSIONS_DIR" ]; then print_info "Sauvegarde des fichiers d'extensions..." @@ -82,7 +82,7 @@ backup_extensions() { else print_warning "Répertoire des extensions non trouvé: $EXTENSIONS_DIR" fi - + # Sauvegarder les paramètres des extensions print_info "Sauvegarde des paramètres des extensions..." dconf dump /org/gnome/shell/extensions/ > "$SETTINGS_FILE" 2>/dev/null @@ -91,7 +91,7 @@ backup_extensions() { else print_warning "Aucun paramètre d'extension à sauvegarder" fi - + # Créer une liste des extensions activées print_info "Sauvegarde de la liste des extensions activées..." gsettings get org.gnome.shell enabled-extensions > "$EXTENSIONS_LIST" 2>/dev/null @@ -100,7 +100,7 @@ backup_extensions() { else print_warning "Impossible de récupérer la liste des extensions activées" fi - + # Créer un fichier de métadonnées METADATA_FILE="$BACKUP_DIR/backup-metadata-$BACKUP_DATE.txt" { @@ -115,7 +115,7 @@ backup_extensions() { echo "- Paramètres: $(basename "$SETTINGS_FILE")" echo "- Liste: $(basename "$EXTENSIONS_LIST")" } > "$METADATA_FILE" - + print_success "Sauvegarde terminée! Fichiers dans: $BACKUP_DIR" print_info "Métadonnées sauvegardées dans: $METADATA_FILE" } @@ -123,13 +123,13 @@ backup_extensions() { # Fonction de restauration restore_extensions() { print_info "Restauration des extensions GNOME..." - + # Lister les sauvegardes disponibles if [ ! -d "$BACKUP_DIR" ] || [ -z "$(ls -A "$BACKUP_DIR"/*.tar.gz 2>/dev/null)" ]; then print_error "Aucune sauvegarde trouvée dans $BACKUP_DIR" exit 1 fi - + echo "Sauvegardes disponibles:" select backup_file in "$BACKUP_DIR"/*.tar.gz; do if [ -n "$backup_file" ]; then @@ -138,21 +138,21 @@ restore_extensions() { print_error "Sélection invalide" fi done - + # Extraire la date de la sauvegarde sélectionnée BACKUP_DATE=$(basename "$backup_file" | sed 's/gnome-extensions-\(.*\)\.tar\.gz/\1/') SETTINGS_FILE="$BACKUP_DIR/gnome-settings-$BACKUP_DATE.dconf" EXTENSIONS_LIST="$BACKUP_DIR/extensions-list-$BACKUP_DATE.txt" - + print_info "Restauration depuis: $(basename "$backup_file")" - + # Demander confirmation read -p "Voulez-vous continuer avec la restauration? (y/N): " confirm if [[ ! "$confirm" =~ ^[Yy]$ ]]; then print_info "Restauration annulée" exit 0 fi - + # Créer une sauvegarde de sécurité des extensions actuelles if [ -d "$EXTENSIONS_DIR" ]; then print_info "Création d'une sauvegarde de sécurité..." @@ -160,7 +160,7 @@ restore_extensions() { tar -czf "$SAFETY_BACKUP" -C "$HOME/.local/share/gnome-shell" extensions/ 2>/dev/null print_success "Sauvegarde de sécurité créée: $SAFETY_BACKUP" fi - + # Restaurer les extensions print_info "Restauration des fichiers d'extensions..." mkdir -p "$HOME/.local/share/gnome-shell" @@ -170,7 +170,7 @@ restore_extensions() { else print_error "Erreur lors de la restauration des extensions" fi - + # Restaurer les paramètres if [ -f "$SETTINGS_FILE" ] && [ -s "$SETTINGS_FILE" ]; then print_info "Restauration des paramètres..." @@ -179,7 +179,7 @@ restore_extensions() { else print_warning "Fichier de paramètres non trouvé ou vide" fi - + # Restaurer la liste des extensions activées if [ -f "$EXTENSIONS_LIST" ] && [ -s "$EXTENSIONS_LIST" ]; then print_info "Restauration de la liste des extensions activées..." @@ -189,7 +189,7 @@ restore_extensions() { else print_warning "Liste des extensions non trouvée" fi - + print_success "Restauration terminée!" print_warning "Vous devrez peut-être redémarrer GNOME Shell (Alt+F2, tapez 'r') ou vous déconnecter/reconnecter" } @@ -197,12 +197,12 @@ restore_extensions() { # Fonction pour lister les sauvegardes list_backups() { print_info "Sauvegardes disponibles:" - + if [ ! -d "$BACKUP_DIR" ]; then print_warning "Répertoire de sauvegarde non trouvé: $BACKUP_DIR" return fi - + for backup in "$BACKUP_DIR"/gnome-extensions-*.tar.gz; do if [ -f "$backup" ]; then filename=$(basename "$backup") @@ -210,7 +210,7 @@ list_backups() { readable_date=$(echo "$date_part" | sed 's/\([0-9]\{4\}\)\([0-9]\{2\}\)\([0-9]\{2\}\)_\([0-9]\{2\}\)\([0-9]\{2\}\)\([0-9]\{2\}\)/\3\/\2\/\1 \4:\5:\6/') size=$(du -h "$backup" | cut -f1) echo " - $filename (Taille: $size, Date: $readable_date)" - + # Vérifier les fichiers associés metadata_file="$BACKUP_DIR/backup-metadata-$date_part.txt" if [ -f "$metadata_file" ]; then @@ -218,7 +218,7 @@ list_backups() { fi fi done - + if [ -z "$(ls -A "$BACKUP_DIR"/gnome-extensions-*.tar.gz 2>/dev/null)" ]; then print_warning "Aucune sauvegarde trouvée" fi @@ -227,15 +227,15 @@ list_backups() { # Fonction pour nettoyer les anciennes sauvegardes cleanup_backups() { print_info "Nettoyage des anciennes sauvegardes..." - + if [ ! -d "$BACKUP_DIR" ]; then print_warning "Répertoire de sauvegarde non trouvé" return fi - + read -p "Combien de sauvegardes souhaitez-vous conserver? (défaut: 5): " keep_count keep_count=${keep_count:-5} - + # Supprimer les anciennes sauvegardes (garder les plus récentes) ls -t "$BACKUP_DIR"/gnome-extensions-*.tar.gz 2>/dev/null | tail -n +$((keep_count + 1)) | while read -r old_backup; do if [ -f "$old_backup" ]; then @@ -247,7 +247,7 @@ cleanup_backups() { rm -f "$BACKUP_DIR/backup-metadata-$date_part.txt" fi done - + print_success "Nettoyage terminé" } @@ -297,7 +297,7 @@ interactive_menu() { while true; do show_menu read -p "Votre choix (1-6): " choice - + case $choice in 1) check_requirements && backup_extensions @@ -358,4 +358,4 @@ main() { esac } -main "$@" \ No newline at end of file +main "$@"