From d22b6dee8704aef6d49582e936b6897075019dc4 Mon Sep 17 00:00:00 2001 From: cedricAbonnel Date: Sun, 19 Nov 2023 09:40:42 +0100 Subject: [PATCH] =?UTF-8?q?Prise=20en=20compte=20de=20la=20liste=20des=20f?= =?UTF-8?q?ichiers=20=C3=A0=20copier.=20Ajouter=20d'un=20logfile.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- install.sh | 56 +++++++++++++++++++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 20 deletions(-) mode change 100755 => 100644 install.sh diff --git a/install.sh b/install.sh old mode 100755 new mode 100644 index 43df690..8616603 --- a/install.sh +++ b/install.sh @@ -1,41 +1,57 @@ #!/bin/bash -# Spécifiez le chemin du répertoire du dépôt Git local +# Spécifier le chemin du répertoire du dépôt Git local repository_dir="local/bin" -# Spécifiez le chemin du répertoire ~/.local/bin +# Spécifier le chemin du répertoire ~/.local/bin 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" -# Vérifiez si le répertoire destination est déjà dans le PATH +# Fonction pour enregistrer les messages de journal +log() { + echo "$(date '+%Y-%m-%d %H:%M:%S') - $$ - $1" >> "$log_file" +} + +# Récupérer des fichiers installés +./prep.sh +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 - echo "$destination_dir est déjà dans le PATH." + log "$destination_dir est déjà dans le PATH." else - # Ajoutez le répertoire destination au PATH dans le fichier de configuration de session de l'utilisateur + # 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 - echo "$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 - -# Assurez-vous que le répertoire de destination existe, sinon, créez-le +# 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éé." fi +# 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/" -# Copiez sélectivement les fichiers du dépôt Git local vers ~/.local/bin en préservant la structure -# Exécutez rsync pour copier les fichiers du dépôt Git local vers ~/.local/bin -copied_files=$(rsync -av --include='*.sh' --include='*.py' --include='*.pl' "$repository_dir/" "$destination_dir/" | grep -v '/$') - -# Renommez les fichiers en supprimant les extensions -for file in $copied_files; do - if [ -f "$destination_dir/$file" ]; then - new_name="${file%.*}" # Supprimer l'extension - mv -v "$destination_dir/$file" "$destination_dir/$new_name" - fi -done + # 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." + 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é." +fi # Affiche un message de confirmation -echo "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 succès."