diff --git a/gestprofilsborgzenity.desktop b/gestprofilsborgzenity.desktop new file mode 100644 index 0000000..13d7aad --- /dev/null +++ b/gestprofilsborgzenity.desktop @@ -0,0 +1,6 @@ +[Desktop Entry] +Name=Borg Zenity Profils +Exec=bin/profile-manager.sh +Icon=borg +Type=Application +Categories=Utility; diff --git a/profile-manager.sh b/profile-manager.sh new file mode 100644 index 0000000..a7a2a4d --- /dev/null +++ b/profile-manager.sh @@ -0,0 +1,74 @@ +#! /bin/bash + +ZenityPulsate () { +zenity $W --window-icon=$HOME/.icons/borg.svg --progress --pulsate --auto-close +} + +W="--width=600" +H="--height=500" + +dossierprofil="$HOME/.config/borg/" +cd $dossierprofil + +# affichage du menu + +choixmenu=$(echo -e "\ +cp\nCréer un nouveau profil/dépôt\n\ +ap\nAfficher les profils\n\ +" | zenity $H $W --window-icon=$HOME/.icons/borg.svg --list \ +--column "id" --column "choix") + +# gestion des choix du menu + +if [ "$choixmenu" = "cp" ];then +# Créer un nouveau profil/dépôt +borg_repo=$(zenity --file-selection --directory) +if [ ! -z "$(ls -A $borg_repo)" ]; then +zenity $W --error --text="Erreur, le dossier n'est pas vide." +exit +fi + +zenity $W --question --text "Chiffrer le dépôt ? (fortement recommandé)" + +if [ "$?" = "0" ];then + zenity $W --warning --text \ + "Le fichier-clé du dépot sera stocké dans le dossier $HOME/.config/borg/keys/.\n\n\ + Veuillez à sauvegarder ce dossier dans un endroit sûr.\n\n\ + Si cette clé ne peut être lue les données ne seront pas récupérables.\n\n\ + Notez qu'il n'existe aucun mécanisme de récupération de clé." + borg init $borg_repo | ZenityPulsate + zenity $W --info --text "Un nouveau dépot chiffré a été généré dans $borg_repo" +elif [ "$?" = "1" ];then + zenity $W --warning --text \ + "Je comprends qu'en ne sécurisant pas mon dépot les données qu'il contient seront librement accessible par toute personne ayant accès aux fichiers du dépôt." + borg init --encryption none $borg_repo | ZenityPulsate + zenity $W --info --text "Un nouveau dépot en clair a été généré dans $borg_repo" +fi + +borg_dir=$(zenity --title "Dossier à sauvegarder" --file-selection --directory) + +vars=$(zenity --forms \ +--text "Laisser les champs vides pour les options par défaut" \ +--add-entry "Nom de sauvegarde" \ +--add-entry "Nom de profil (pas d'espace ni caractères spéciaux)") +nomsauvegarde=$(echo $vars | cut -d\| -f1) +profilename=$(echo $vars | cut -d\| -f2) + +cat << EOF >> $HOME/.config/borg/"$profilename".txt +nomsauvegarde="$nomsauvegarde" +borg_repo="$borg_repo" +borg_archive="\$(date +%d_%B_%Y)" +borg_dir="$borg_dir" +borg_excludes="" +borg_compress="" +dryrun="" +EOF + +elif [ "$choixmenu" = "ap" ];then +# Afficher les profils +fichierprofil=$(ls -1 *.txt | zenity $H $W --window-icon=$HOME/.icons/borg.svg --list --title "Liste des profils" --text "Choisir un profil dans la liste" --hide-header --column "profil") +zenity $W $H --info --text="$(cd $dossierprofil && cat $fichierprofil)" + +elif [ "$choixmenu" = "" ];then +exit +fi