diff --git a/profile-manager.sh b/profile-manager.sh index e80ad90..d4ae3e6 100755 --- a/profile-manager.sh +++ b/profile-manager.sh @@ -1,27 +1,57 @@ #! /bin/bash +# Fonctions et variables +########################################################### + ZenityPulsate () { zenity $W --window-icon=$HOME/.icons/borg.svg --progress --pulsate --auto-close } +TestBorgRepo () { +if [ ! -f "config" ]; then + TestBorgErr=1 + infoerr=$(echo "Impossible de trouver le fichier de configuration du dépôt.") + zenity $W --error --text="$infoerr" + exit +fi + +if [ ! -d "data" ]; then + TestBorgErr=1 + infoerr=$(echo "Impossible de trouver le dossier des données du dépôt.") + zenity $W --error --text="$infoerr" + exit +fi + +if [ -d "lock.exclusive" ]; then + TestBorgErr=1 + infoerr=$(echo "Le dépôt est bloqué, une opération est peut-être en cours") + zenity $W --error --text="$infoerr" + exit +fi +} + W="--width=600" H="--height=500" dossierprofil="$HOME/.config/borg/profils-borg-zenity/" cd $dossierprofil -# affichage du menu +# Affichage du menu +########################################################### choixmenu=$(echo -e "\ cp\nCréer un nouveau profil/dépôt\n\ +ajd\nAjouter un 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 +# Gestion des choix du menu +########################################################### + +### Créer un nouveau profil/dépôt ### 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." @@ -57,15 +87,42 @@ profilename=$(echo $vars | cut -d\| -f2) cat << EOF >> "$dossierprofil""$profilename".conf nomsauvegarde="$nomsauvegarde" borg_repo="$borg_repo" -borg_archive="\$(date +%d_%B_%Y_%H-%M-%S)" +borg_archive="\$(date +%d_%B_%Y_%H-%M)" borg_dir="$borg_dir" borg_excludes="" borg_compress="" dryrun="" EOF +### Ajouter un dépôt existant ### + +elif [ "$choixmenu" = "ajd" ];then + +borg_repo=$(zenity --title "Dossier du dépôt" --file-selection --directory) +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 >> "$dossierprofil""$profilename".conf +nomsauvegarde="$nomsauvegarde" +borg_repo="$borg_repo" +borg_archive="\$(date +%d_%B_%Y_%H-%M)" +borg_dir="$borg_dir" +borg_excludes="" +borg_compress="" +dryrun="" +EOF + +zenity $W --info --text "Le dépôt à bien été ajouté.\nLancez «Borg Zenity Sauvegarde» pour faire une sauvegarde." + +### Afficher les profils ### + 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)"