#! /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\ " | 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".conf nomsauvegarde="$nomsauvegarde" borg_repo="$borg_repo" borg_archive="\$(date +%d_%B_%Y_%H-%M-%S)" borg_dir="$borg_dir" borg_excludes="" borg_compress="" dryrun="" EOF elif [ "$choixmenu" = "ap" ];then # Afficher les profils fichierprofil=$(ls -1 *.conf | 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