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;