From 1b4c04052479b666cad765513ddffb6fd7bfec35 Mon Sep 17 00:00:00 2001
From: Djan GICQUEL <>
Date: Tue, 27 Jul 2021 20:34:58 +0200
Subject: [PATCH 1/3] =?UTF-8?q?cr=C3=A9ation=20du=20gestionnaire=20de=20pr?=
=?UTF-8?q?ofils?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
profile-manager.sh | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)
create mode 100644 profile-manager.sh
diff --git a/profile-manager.sh b/profile-manager.sh
new file mode 100644
index 0000000..2d8580c
--- /dev/null
+++ b/profile-manager.sh
@@ -0,0 +1,30 @@
+#! /bin/bash
+
+W="600"
+H="500"
+dossierprofil="$HOME/.config/borg/"
+cd $dossierprofil
+choixmenu=$(echo -e "\
+cp\nCréer un nouveau profil\n\
+ap\nAfficher les profils\
+" | zenity --height=$H --width=$W --window-icon=$HOME/.icons/borg.svg --list \
+--column "id" --column "choix")
+
+if [ "$choixmenu" = "cp" ];then
+choixdossier=$(zenity --file-selection --directory)
+
+if [ -z "$(ls -A $choixdossier)" ]; then
+zenity --width=$W --window-icon=$HOME/.icons/borg.svg --progress --pulsate --auto-close | zenity --notification --text "Initialisation du dépôt..."
+else
+zenity --width=$W --error --text="Erreur, le dossier n'est pas vide."
+fi
+
+
+elif [ "$choixmenu" = "ap" ];then
+fichierprofil=$(ls -1 *.txt | zenity --height=$H --width=$W --window-icon=$HOME/.icons/borg.svg --list --title "Liste des profils" --text "Choisir un profil dans la liste" --hide-header --column "profil")
+zenity --width=$W --height=$H --info --text="$(cd $dossierprofil && cat $fichierprofil)"
+
+
+elif [ "$choixmenu" = "" ];then
+zenity --width=$W --info --text="Aucun choix, retour au menu."
+fi
From 131ba2f4001d8790d78a4f80b621be5039690617 Mon Sep 17 00:00:00 2001
From: Djan GICQUEL <>
Date: Tue, 3 Aug 2021 16:55:22 +0200
Subject: [PATCH 2/3] =?UTF-8?q?variables=20courte=20pour=20la=20hauteur=20?=
=?UTF-8?q?et=20la=20largeur=20gestion=20du=20choix=20Cr=C3=A9er=20un=20no?=
=?UTF-8?q?uveau=20profil/d=C3=A9p=C3=B4t=20gestion=20du=20choix=20Affiche?=
=?UTF-8?q?r=20les=20profils?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
profile-manager.sh | 74 ++++++++++++++++++++++++++++++++++++----------
1 file changed, 59 insertions(+), 15 deletions(-)
diff --git a/profile-manager.sh b/profile-manager.sh
index 2d8580c..a7a2a4d 100644
--- a/profile-manager.sh
+++ b/profile-manager.sh
@@ -1,30 +1,74 @@
#! /bin/bash
-W="600"
-H="500"
+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\n\
-ap\nAfficher les profils\
-" | zenity --height=$H --width=$W --window-icon=$HOME/.icons/borg.svg --list \
+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")
-if [ "$choixmenu" = "cp" ];then
-choixdossier=$(zenity --file-selection --directory)
+# gestion des choix du menu
-if [ -z "$(ls -A $choixdossier)" ]; then
-zenity --width=$W --window-icon=$HOME/.icons/borg.svg --progress --pulsate --auto-close | zenity --notification --text "Initialisation du dépôt..."
-else
-zenity --width=$W --error --text="Erreur, le dossier n'est pas vide."
+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é)"
-elif [ "$choixmenu" = "ap" ];then
-fichierprofil=$(ls -1 *.txt | zenity --height=$H --width=$W --window-icon=$HOME/.icons/borg.svg --list --title "Liste des profils" --text "Choisir un profil dans la liste" --hide-header --column "profil")
-zenity --width=$W --height=$H --info --text="$(cd $dossierprofil && cat $fichierprofil)"
+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
-zenity --width=$W --info --text="Aucun choix, retour au menu."
+exit
fi
From 8f166a3c21bf7423cb26db520bbee69007b738be Mon Sep 17 00:00:00 2001
From: Djan GICQUEL <>
Date: Thu, 5 Aug 2021 09:25:58 +0200
Subject: [PATCH 3/3] ajout de l'icone gestionnaire de profils dans les menus
---
gestprofilsborgzenity.desktop | 6 ++++++
1 file changed, 6 insertions(+)
create mode 100644 gestprofilsborgzenity.desktop
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;