mémorise les options cochées
This commit is contained in:
@@ -1,8 +1,9 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# Définition du dépôt et du fichier contenant la liste des dossiers
|
# Définition du dépôt et des fichiers de configuration
|
||||||
REPO_URL="https://git.abonnel.fr/cedricAbonnel/notes-techniques/raw/branch/main/scripts"
|
REPO_URL="https://git.abonnel.fr/cedricAbonnel/notes-techniques/raw/branch/main/scripts"
|
||||||
DIR_LIST_FILE=".directories.txt"
|
DIR_LIST_FILE=".directories.txt"
|
||||||
|
SELECTED_DIRS_FILE=".selected_dirs.txt"
|
||||||
MANDATORY_DIR="common"
|
MANDATORY_DIR="common"
|
||||||
|
|
||||||
# Télécharger la liste des dossiers disponibles
|
# Télécharger la liste des dossiers disponibles
|
||||||
@@ -26,13 +27,24 @@ if [ ${#AVAILABLE_DIRS[@]} -eq 0 ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Charger les dossiers précédemment sélectionnés
|
||||||
|
if [ -f "$SELECTED_DIRS_FILE" ]; then
|
||||||
|
mapfile -t PREVIOUS_SELECTION < "$SELECTED_DIRS_FILE"
|
||||||
|
else
|
||||||
|
PREVIOUS_SELECTION=()
|
||||||
|
fi
|
||||||
|
|
||||||
# Construire la liste pour whiptail
|
# Construire la liste pour whiptail
|
||||||
CHOICES=()
|
CHOICES=()
|
||||||
for dir in "${AVAILABLE_DIRS[@]}"; do
|
for dir in "${AVAILABLE_DIRS[@]}"; do
|
||||||
if [ "$dir" == "$MANDATORY_DIR" ]; then
|
if [ "$dir" == "$MANDATORY_DIR" ]; then
|
||||||
continue # Ne pas inclure le dossier obligatoire dans le choix
|
continue # Ne pas inclure le dossier obligatoire dans le choix
|
||||||
fi
|
fi
|
||||||
|
if [[ " ${PREVIOUS_SELECTION[*]} " =~ " $dir " ]]; then
|
||||||
|
CHOICES+=("$dir" "" ON)
|
||||||
|
else
|
||||||
CHOICES+=("$dir" "" OFF)
|
CHOICES+=("$dir" "" OFF)
|
||||||
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
# Affichage du menu de sélection avec whiptail
|
# Affichage du menu de sélection avec whiptail
|
||||||
@@ -46,9 +58,20 @@ if [ $? -ne 0 ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Ajouter le dossier obligatoire
|
# Convertir la sélection en tableau
|
||||||
SELECTED_DIRS_ARRAY=("$MANDATORY_DIR" $(echo "$SELECTED_DIRS" | tr -d '"'))
|
SELECTED_DIRS_ARRAY=("$MANDATORY_DIR" $(echo "$SELECTED_DIRS" | tr -d '"'))
|
||||||
|
|
||||||
|
# Enregistrer la sélection actuelle
|
||||||
|
echo "${SELECTED_DIRS_ARRAY[@]}" > "$SELECTED_DIRS_FILE"
|
||||||
|
|
||||||
|
# Identifier les dossiers à supprimer (ceux qui ne sont plus sélectionnés)
|
||||||
|
for dir in "${PREVIOUS_SELECTION[@]}"; do
|
||||||
|
if [[ ! " ${SELECTED_DIRS_ARRAY[*]} " =~ " $dir " ]]; then
|
||||||
|
echo "🗑 Suppression du dossier $dir..."
|
||||||
|
rm -rf "$dir"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
# Télécharger ou mettre à jour les fichiers pour chaque dossier sélectionné
|
# Télécharger ou mettre à jour les fichiers pour chaque dossier sélectionné
|
||||||
for TARGET_DIR in "${SELECTED_DIRS_ARRAY[@]}"; do
|
for TARGET_DIR in "${SELECTED_DIRS_ARRAY[@]}"; do
|
||||||
LIST_FILE=".list_files.txt"
|
LIST_FILE=".list_files.txt"
|
||||||
@@ -98,4 +121,4 @@ done
|
|||||||
# Nettoyage
|
# Nettoyage
|
||||||
rm -rf "$TMP_DIR"
|
rm -rf "$TMP_DIR"
|
||||||
|
|
||||||
echo "🚀 Tous les scripts sélectionnés ont été mis à jour et sont exécutables."
|
echo "🚀 Tous les scripts sélectionnés ont été mis à jour et
|
||||||
|
|||||||
Reference in New Issue
Block a user