From 52581030f891f0cb2cb56b5cd44d25e4d3fad2cf Mon Sep 17 00:00:00 2001 From: cedricAbonnel Date: Fri, 1 Dec 2023 01:05:03 +0100 Subject: [PATCH] Optimisation du code + logs --- install.sh | 134 +++++++++++++++++++---------------------------------- 1 file changed, 48 insertions(+), 86 deletions(-) diff --git a/install.sh b/install.sh index 4f58a72..51d3508 100755 --- a/install.sh +++ b/install.sh @@ -63,6 +63,44 @@ add_uninstall() { } +## Fonction de Traitement ## +process_deployment_files() { + local destination="$1" + local source="$2" + local file_desc="$3" + + log "### Déploiement des fichiers pour $destination" + + # S'assurer que le répertoire de destination existe, sinon, le créer + create_dir "$destination" + + # Copier sélectivement les fichiers du dépôt Git local vers $destination en préservant la structure + log "Vérification de l'existence de '$file_desc'" + + # Vérifier si le fichier "$file_desc" existe + if [ -e "$file_desc" ]; then + # Récupérer des fichiers installés + fileslist_local=$(cat "$file_desc") + + # Utilisez la commande rsync pour copier les fichiers + log "Copie des fichiers listés dans $file_desc." + + # Copier les fichiers en supprimant les extensions + for file in $fileslist_local; do + cp -v "$source/$file" "$destination/" 2>&1 | while read -r line; do + log "- $line" + done + add_uninstall "$destination/$file" + done + else + error "Le fichier '$file_desc' n'existe pas. Votre dépôt Git local n'est pas complet ou quelque chose s'est mal passé." + fi + + # Affiche un message de confirmation + log "Les fichiers du dépôt Git local ont été copiés vers $destination_dir avec succès." +} + + purge_old_logs(){ find "$log_dir" -type f -name "a5l-scripts_bash-*.log" -mtime +10 -exec rm {} \; find "$log_dir" -type f -name "a5l-scripts_bash_prep-*.log" -mtime +10 -exec rm {} \; @@ -93,35 +131,9 @@ source_dir="local/share/doc" file_local_desc=.config/files_local-share-doc ## Traitement ## +log "## Debut du traitement pour $destination_dir" -log "Debut du Traitement pour $destination_dir" - - -# S'assurer que le répertoire de destination existe, sinon, le créer -create_dir "$destination_dir" - -log " _ Traitement des fichiers à copier dans $destination_dir" -# Copier sélectivement les fichiers du dépôt Git local vers ~/.local/bin en préservant la structure -# Vérifier si le fichier "$file_local_desc" existe -if [ -e "$file_local_desc" ]; then - # Récupérer des fichiers installés - fileslist_local=$(cat "$file_local_desc") - - # Utilisez la commande rsync pour copier les fichiers - log " Copie des fichiers listés dans $file_local_desc" - - # Copier les fichiers en supprimant les extensions - for file in $fileslist_local; do - cp -v "$source_dir/$file" "$destination_dir/" 2>&1 | while read -r line; do - log "$line" - done - add_uninstall "$destination_dir/$file" - done - -else - error "Le fichier '$file_local_desc' n'existe pas. Votre dépôt Git local n'est pas complet ou quelque chose s'est mal passé." -fi - +process_deployment_files "$destination_dir" "$source_dir" "$file_local_desc" @@ -138,16 +150,10 @@ source_dir="local/share/man" file_local_desc=.config/files_local-share-man - ## Traitement ## +log "## Debut du traitement pour $destination_dir" -log "Debut du Traitement $destination_dir" - -# S'assurer que le répertoire de destination existe, sinon, le créer -create_dir "$destination_dir" - - -log "Debut du Traitement pour la gestion du PATH avec $destination_dir" +log "### Debut du Traitement pour la gestion du PATH avec $destination_dir" # Vérifier si le répertoire destination est déjà dans le PATH if [[ ! ":$(manpath):" == *":$destination_dir:"* ]]; then # Ajouter le répertoire destination au PATH dans le fichier de configuration de session de l'utilisateur @@ -156,31 +162,7 @@ if [[ ! ":$(manpath):" == *":$destination_dir:"* ]]; then log " $destination_dir a été ajouté au MANPATH dans le fichier de configuration de session de l'utilisateur." fi -log "Debut du Traitement des fichiers à copier dans $destination_dir" -# Copier sélectivement les fichiers du dépôt Git local -# Vérifier si le fichier "$file_local_desc" existe -if [ -e "$file_local_desc" ]; then - # Récupérer des fichiers installés - fileslist_local=$(cat "$file_local_desc") - - # Utilisez la commande rsync pour copier les fichiers - log "Copie des fichiers listés dans $file_local_desc" - - # Copier les fichiers en supprimant les extensions - for file in $fileslist_local; do - cp -v "$source_dir/$file" "$destination_dir/man1/" 2>&1 | while read -r line; do - log " $line" - done - add_uninstall "$destination_dir/man1/$file" - done - -else - error " Le fichier '$file_local_desc' n'existe pas. Votre dépôt Git local n'est pas complet ou quelque chose s'est mal passé." -fi - - - - +process_deployment_files "$destination_dir" "$source_dir" "$file_local_desc" @@ -197,12 +179,12 @@ source_dir="local/bin" file_local_desc=.config/files_local-bin ## Traitement ## - -log "Debut du Traitement pour $destination_dir" +log "## Debut du traitement pour $destination_dir" # S'assurer que le répertoire de destination existe, sinon, le créer create_dir "$destination_dir" +log "### Debut du Traitement pour la gestion du PATH avec $destination_dir" # Vérifier si le répertoire destination est déjà dans le PATH if [[ ! ":$PATH:" == *":$destination_dir:"* ]]; then # Ajouter le répertoire destination au PATH dans le fichier de configuration de session de l'utilisateur @@ -211,28 +193,8 @@ if [[ ! ":$PATH:" == *":$destination_dir:"* ]]; then log " $destination_dir a été ajouté au PATH dans le fichier de configuration de session de l'utilisateur." fi -log "Traitement des fichiers à copier dans $destination_dir" -# Copier sélectivement les fichiers du dépôt Git local vers ~/.local/bin en préservant la structure -# Vérifier si le fichier "$file_local_desc" existe -if [ -e "$file_local_desc" ]; then - # Récupérer des fichiers installés - fileslist_local=$(cat "$file_local_desc") +## Traitement ## +process_deployment_files "$destination_dir" "$source_dir" "$file_local_desc" - # Utilisez la commande rsync pour copier les fichiers - log "Copie des fichiers listés dans .config/files_local-bin" +log "## Fin du script. Bonne continuation." - # Copier les fichiers en supprimant les extensions - for file in $fileslist_local; do - new_name="${file%.*}" # Supprimer l'extension - cp -v "$source_dir/$file" "$destination_dir/$new_name" 2>&1 | while read -r line; do - log " $line" - done - add_uninstall "$destination_dir/$new_name" - done - -else - error "Le fichier $file_local_desc n'existe pas. Votre dépôt Git local n'est pas complet ou quelque chose s'est mal passé." -fi - -# Affiche un message de confirmation -log "Les fichiers du dépôt Git local ont été copiés vers $destination_dir avec succès."