From 7fd396adec4c6febbf9ea23ceb57dbbd98b1bc29 Mon Sep 17 00:00:00 2001 From: cedricAbonnel Date: Sun, 19 Nov 2023 09:54:43 +0100 Subject: [PATCH] Prise en compte des erreurs dans le script install.sh --- install.sh | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) mode change 100644 => 100755 install.sh diff --git a/install.sh b/install.sh old mode 100644 new mode 100755 index 8616603..7633628 --- a/install.sh +++ b/install.sh @@ -9,6 +9,14 @@ destination_dir="$HOME/.local/bin" # Spécifier le chemin du fichier journal log_file="$HOME/copy_files_$(date '+%Y%m%d-%H%M%S')_$$.log" +# Fonction pour afficher un message d'erreur et quitter le script en cas d'erreur +error() { + local error_message="$1" + log "ERREUR: $error_message" + echo "Erreur: $error_message" + exit 1 +} + # Fonction pour enregistrer les messages de journal log() { echo "$(date '+%Y-%m-%d %H:%M:%S') - $$ - $1" >> "$log_file" @@ -19,39 +27,39 @@ log() { files_local_bin=$(cat files_local-bin) # Vérifier si le répertoire destination est déjà dans le PATH -if [[ ":$PATH:" == *":$destination_dir:"* ]]; then - log "$destination_dir est déjà dans le PATH." -else +if [[ ! ":$PATH:" == *":$destination_dir:"* ]]; then # Ajouter le répertoire destination au PATH dans le fichier de configuration de session de l'utilisateur echo 'export PATH="$PATH:'"$destination_dir"'"' >> ~/.bashrc source ~/.bashrc - log "$destination_dir a été ajouté au PATH dans le fichier de configuration de session de l'utilisateur." + log " _ $destination_dir a été ajouté au PATH dans le fichier de configuration de session de l'utilisateur." fi # S'assurer que le répertoire de destination existe, sinon, le créer if [ ! -d "$destination_dir" ]; then - mkdir -p "$destination_dir" - log "Le répertoire $destination_dir a été créé." + mkdir -p "$destination_dir" || error "Impossible de créer le répertoire $destination_dir" + log " _ Le répertoire $destination_dir a été créé." fi +log " _ Traitement des fichiers à copier dans ~/local/bin" # Copier sélectivement les fichiers du dépôt Git local vers ~/.local/bin en préservant la structure # Vérifier si le fichier "files_local-bin" existe if [ -e "files_local-bin" ]; then # Utilisez la commande rsync pour copier les fichiers - rsync -av --files-from=files_local-bin "$repository_dir/" "$destination_dir/" + log " __ Copie des fichiers" + rsync -av --files-from=files_local-bin "$repository_dir/" "$destination_dir/" >> "$log_file" 2>&1 || error "Échec de la copie avec rsync" # Renommez les fichiers en supprimant les extensions for file in $files_local_bin; do if [ -f "$destination_dir/$file" ]; then new_name="${file%.*}" # Supprimer l'extension - mv -v "$destination_dir/$file" "$destination_dir/$new_name" - log "Le fichier $file a été renommé en $new_name." + mv -v "$destination_dir/$file" "$destination_dir/$new_name" || error "Impossible de renommer le fichier $file en $new_name" + log " __ Renommer $file -> $new_name." fi done else - log "Le fichier 'files_local-bin' n'existe pas. Votre dépôt Git local n'est pas complet ou quelque chose s'est mal passé." + error "Le fichier 'files_local-bin' 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." +log "Les fichiers du dépôt Git local ont été copiés vers $destination_dir avec succe_s."