Actualiser gnome_extension.sh

This commit is contained in:
2025-08-14 07:23:36 +00:00
parent 871eb0bee3
commit c3c16da1a3

View File

@@ -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 "$@"
main "$@"