From 8eb8f661aedcb752f0ae6beba3a0e0bdcbb23879 Mon Sep 17 00:00:00 2001 From: "test.cedric" Date: Sun, 19 Nov 2023 23:11:32 +0000 Subject: [PATCH] Actualiser install.sh Pb d'unicode --- install.sh | 414 ++++++++++++++++++++++++++--------------------------- 1 file changed, 207 insertions(+), 207 deletions(-) diff --git a/install.sh b/install.sh index ffd711a..a80d9bc 100755 --- a/install.sh +++ b/install.sh @@ -1,207 +1,207 @@ -#!/bin/bash - -# Spécifier le chemin du fichier journal -log_dir="$HOME/log" -log_file="${log_dir}/a5l-scripts_bash-$(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" - echo "$1" -} - -create_dir() { - # S'assurer que le répertoire de destination existe, sinon, le créer - log "Tentative de création du dossier $1" - if [ ! -d "$1" ]; then - mkdir -p "$1" || error "Impossible de créer le répertoire $1" - log " _ Le répertoire $1 a été créé." - else - log " _ Le répertoire $1 existe déjà." - fi - -} - - -add_uninstall() { - ## Create or update uninstall script - - uninstall_list=$HOME/.config/a5l_scripts-bash_uninstall-list - test -f "${uninstall_list}" || touch "${uninstall_list}" - - local fichier_a_supprimer="$1" - - # Vérifier si le fichier de suppression existe déjà dans uninstall_script - if ! grep -q "$fichier_a_supprimer" "$uninstall_list"; then - # Ajouter le fichier à uninstall_list - echo "$fichier_a_supprimer" >> "$uninstall_list" - fi -} - -log "Debut du script" - -## Post traitement : log - - -# S'assurer que le répertoire de destination existe, sinon, le créer -create_dir "${log_dir}" - - - - -#### .local/share/doc #### - -## Declarations ## - -# Spécifier le chemin du répertoire destination -destination_dir="$HOME/.local/share/doc" - -# Spécifier le chemin du répertoire du dépôt Git local -source_dir="local/share/doc" - -file_local_desc=.config/files_local-share-doc - -## Traitement ## - -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/" || error "Impossible de copier $source_dir/$file vers $destination_dir/" - 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 - - - - - -#### .local/share/man #### - -## Declarations ## - -# Spécifier le chemin du répertoire ~/.local/bin -destination_dir="$HOME/.local/share/man" - -# Spécifier le chemin du répertoire du dépôt Git local -source_dir="local/share/man" - -file_local_desc=.config/files_local-share-man - - -## Traitement ## - -log "Debut du Traitement pour $destination_dir" - -# S'assurer que le répertoire de destination existe, sinon, le créer -create_dir "$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 - echo 'export MANPATH="$(manpath):'"$destination_dir"'"' >> ~/.bashrc - source ~/.bashrc - log " _ $destination_dir a été ajouté au MANPATH 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 -# 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/" || error "Impossible de fichier $source_dir/$file vers $destination_dir/man1/" - 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 - - - - - - - -#### .local/bin #### - -## Declarations ## - -# Spécifier le chemin du répertoire ~/.local/bin -destination_dir="$HOME/.local/bin" - -# Spécifier le chemin du répertoire du dépôt Git local -source_dir="local/bin" - -file_local_desc=.config/files_local-bin - -## Traitement ## - -log "Debut du Traitement pour $destination_dir" - -# S'assurer que le répertoire de destination existe, sinon, le créer -create_dir "$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 - 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." -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") - - # Utilisez la commande rsync pour copier les fichiers - log " Copie des fichiers" - - # 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" || error "Impossible de fichier $source_dir/$file vers $destination_dir/$new_nam" - 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." +#!/bin/bash + +# Spécifier le chemin du fichier journal +log_dir="$HOME/log" +log_file="${log_dir}/a5l-scripts_bash-$(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" + echo "$1" +} + +create_dir() { + # S'assurer que le répertoire de destination existe, sinon, le créer + log "Tentative de création du dossier $1" + if [ ! -d "$1" ]; then + mkdir -p "$1" || error "Impossible de créer le répertoire $1" + log " _ Le répertoire $1 a été créé." + else + log " _ Le répertoire $1 existe déjà." + fi + +} + + +add_uninstall() { + ## Create or update uninstall script + + uninstall_list=$HOME/.config/a5l_scripts-bash_uninstall-list + test -f "${uninstall_list}" || touch "${uninstall_list}" + + local fichier_a_supprimer="$1" + + # Vérifier si le fichier de suppression existe déjà dans uninstall_script + if ! grep -q "$fichier_a_supprimer" "$uninstall_list"; then + # Ajouter le fichier à uninstall_list + echo "$fichier_a_supprimer" >> "$uninstall_list" + fi +} + +log "Debut du script" + +## Post traitement : log + + +# S'assurer que le répertoire de destination existe, sinon, le créer +create_dir "${log_dir}" + + + + +#### .local/share/doc #### + +## Declarations ## + +# Spécifier le chemin du répertoire destination +destination_dir="$HOME/.local/share/doc" + +# Spécifier le chemin du répertoire du dépôt Git local +source_dir="local/share/doc" + +file_local_desc=.config/files_local-share-doc + +## Traitement ## + +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/" || error "Impossible de copier $source_dir/$file vers $destination_dir/" + 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 + + + + + +#### .local/share/man #### + +## Declarations ## + +# Spécifier le chemin du répertoire ~/.local/bin +destination_dir="$HOME/.local/share/man" + +# Spécifier le chemin du répertoire du dépôt Git local +source_dir="local/share/man" + +file_local_desc=.config/files_local-share-man + + +## Traitement ## + +log "Debut du Traitement pour $destination_dir" + +# S'assurer que le répertoire de destination existe, sinon, le créer +create_dir "$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 + echo 'export MANPATH="$(manpath):'"$destination_dir"'"' >> ~/.bashrc + source ~/.bashrc + log " _ $destination_dir a été ajouté au MANPATH 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 +# 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/" || error "Impossible de fichier $source_dir/$file vers $destination_dir/man1/" + 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 + + + + + + + +#### .local/bin #### + +## Declarations ## + +# Spécifier le chemin du répertoire ~/.local/bin +destination_dir="$HOME/.local/bin" + +# Spécifier le chemin du répertoire du dépôt Git local +source_dir="local/bin" + +file_local_desc=.config/files_local-bin + +## Traitement ## + +log "Debut du Traitement pour $destination_dir" + +# S'assurer que le répertoire de destination existe, sinon, le créer +create_dir "$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 + 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." +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") + + # Utilisez la commande rsync pour copier les fichiers + log " Copie des fichiers" + + # 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" || error "Impossible de fichier $source_dir/$file vers $destination_dir/$new_nam" + 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."