From dec199480e155add3110d4f2743f8cc9877407ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9drix?= Date: Sun, 17 May 2026 21:04:37 +0200 Subject: [PATCH] =?UTF-8?q?refactor:=20conformit=C3=A9=20XDG=20Base=20Dire?= =?UTF-8?q?ctory=20Specification?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Logs déplacés vers $XDG_STATE_HOME/scripts-bash (au lieu de ~/log ou ~/logs) - Liste d'installation déplacée vers $XDG_DATA_HOME/scripts-bash/uninstall-list - updateall : hosts → $XDG_CONFIG_HOME/updateall/hosts, stats → $XDG_STATE_HOME/updateall/stats - generate_playlist : config → $XDG_CONFIG_HOME/generate-playlist - random_music_player, play_tophaire : config via $XDG_CONFIG_HOME - trierPhotos.php : logs via $XDG_STATE_HOME - Toutes les variables XDG avec fallback (~/.local/state, ~/.local/share, ~/.config) Co-Authored-By: Claude Sonnet 4.6 --- install.sh | 5 +++-- local/bin/convertMKV.sh | 7 ++++--- local/bin/convertPDF.sh | 4 +++- local/bin/generate_playlist.sh | 6 +++--- local/bin/play_tophaire.sh | 2 +- local/bin/random_music_player.sh | 2 +- local/bin/trierPhotos.php | 2 +- local/bin/updateall.sh | 19 ++++++++++++------- prep.sh | 2 +- uninstall.sh | 2 +- 10 files changed, 30 insertions(+), 21 deletions(-) diff --git a/install.sh b/install.sh index 3a91d3c..69c5e09 100755 --- a/install.sh +++ b/install.sh @@ -20,7 +20,7 @@ # Spécifier le chemin du fichier journal -log_dir="$HOME/log" +log_dir="${XDG_STATE_HOME:-$HOME/.local/state}/scripts-bash" 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 @@ -55,7 +55,8 @@ create_dir() { add_uninstall() { ## Create or update uninstall script - uninstall_list=$HOME/.config/a5l_scripts-bash_uninstall-list + uninstall_list="${XDG_DATA_HOME:-$HOME/.local/share}/scripts-bash/uninstall-list" + mkdir -p "$(dirname "$uninstall_list")" test -f "${uninstall_list}" || touch "${uninstall_list}" local fichier_a_supprimer="$1" diff --git a/local/bin/convertMKV.sh b/local/bin/convertMKV.sh index e3753e5..9ba8e89 100755 --- a/local/bin/convertMKV.sh +++ b/local/bin/convertMKV.sh @@ -21,7 +21,8 @@ ############################################################################### #clear -logFile=~/$(basename ${0}).log +logFile="${XDG_STATE_HOME:-$HOME/.local/state}/scripts-bash/$(basename "${0}").log" +mkdir -p "$(dirname "$logFile")" echo -e "\n" echo -e "==> Préparation de l'environnement...\n"|tee $logFile @@ -57,7 +58,7 @@ source_dir=$(pwd) input_file_type=${param1} output_file_type="new${param2}.mkv" declare -a mesFichiers -listFileName=~/rsbConvert_${date_en_cours}.sh +listFileName="${XDG_STATE_HOME:-$HOME/.local/state}/scripts-bash/rsbConvert_${date_en_cours}.sh" echo -e "Dossier en cours : " |tee -a $logFile @@ -246,7 +247,7 @@ echo -e "==> Traitement des vidéos en cours...\n"|tee -a $logFile echo "touch \"${out_file}.processed\"">> ${listFileName} echo -e "\n ==> On indique le fichier traité et le résultat dans un log"|tee -a $logFile - cmd_exec="echo -e \"\\\"${in_file}\\\" > \\\"${out_file}\\\"\">> ~/rsbConvert.log" + cmd_exec="echo -e \"\\\"${in_file}\\\" > \\\"${out_file}\\\"\">> \"${XDG_STATE_HOME:-$HOME/.local/state}/scripts-bash/rsbConvert.log\"" echo ${cmd_exec}>> ${listFileName} echo -e "\n ==> Finished \"$out_file\""|tee -a $logFile diff --git a/local/bin/convertPDF.sh b/local/bin/convertPDF.sh index 411be2f..5b6bcc4 100755 --- a/local/bin/convertPDF.sh +++ b/local/bin/convertPDF.sh @@ -25,7 +25,9 @@ function message { clear -fichierLog=~/convertPDF.log +_log_dir="${XDG_STATE_HOME:-$HOME/.local/state}/scripts-bash" +mkdir -p "$_log_dir" +fichierLog="$_log_dir/convertPDF.log" fichiersATraiter=fichiersATraiter.lst idLog=$$-${uuidgen} diff --git a/local/bin/generate_playlist.sh b/local/bin/generate_playlist.sh index b9038e9..1de6797 100755 --- a/local/bin/generate_playlist.sh +++ b/local/bin/generate_playlist.sh @@ -51,16 +51,16 @@ done # Définition du dossier des paramètres -CONFIG_DIR=${HOME}/.config/cedrix/generate_playlist +CONFIG_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/generate-playlist" if [ ! -d "$CONFIG_DIR" ]; then mkdir -p ${CONFIG_DIR} fi # Vérifier si le fichier user-dirs.dirs existe -if [[ -f ~/.config/user-dirs.dirs ]]; then +if [[ -f "${XDG_CONFIG_HOME:-$HOME/.config}/user-dirs.dirs" ]]; then # Charger les variables depuis le fichier user-dirs.dirs - source ~/.config/user-dirs.dirs + source "${XDG_CONFIG_HOME:-$HOME/.config}/user-dirs.dirs" # Vérifier si la variable XDG_MUSIC_DIR est définie if [[ -v XDG_MUSIC_DIR ]]; then diff --git a/local/bin/play_tophaire.sh b/local/bin/play_tophaire.sh index 4a2da6b..4ac1a9d 100755 --- a/local/bin/play_tophaire.sh +++ b/local/bin/play_tophaire.sh @@ -1,7 +1,7 @@ #!/bin/bash ## Read config file or create/update -config_filename=~/.config/$(basename "${0}") +config_filename="${XDG_CONFIG_HOME:-$HOME/.config}/$(basename "${0}")" test -f "${config_filename}" && . "${config_filename}" || echo "# Fichier de configuration créé $(date +%c)" | tee "${config_filename}" ### edit directory path music background diff --git a/local/bin/random_music_player.sh b/local/bin/random_music_player.sh index 8c7f31d..b5b60f0 100755 --- a/local/bin/random_music_player.sh +++ b/local/bin/random_music_player.sh @@ -4,7 +4,7 @@ trap 'exit 130' INT ## Read config file or create/update -config_filename=~/.config/$(basename ${0}) +config_filename="${XDG_CONFIG_HOME:-$HOME/.config}/$(basename "${0}")" test -f ${config_filename} && . ${config_filename} || echo "# Fichier de configuration créé $(date +%c)" | tee ${config_filename} ### edit directory path music background diff --git a/local/bin/trierPhotos.php b/local/bin/trierPhotos.php index ae990fe..d943766 100755 --- a/local/bin/trierPhotos.php +++ b/local/bin/trierPhotos.php @@ -1,7 +1,7 @@ #!/usr/bin/php > ~/.config/updateall-hosts + echo "$machine 1" >> "$UPDATEALL_HOSTS" else - echo "$machine 0" >> ~/.config/updateall-hosts + echo "$machine 0" >> "$UPDATEALL_HOSTS" continue fi } @@ -285,7 +290,7 @@ check_host() { run_custom_script() { local machine="$1" - local custom_script="$HOME/.config/updateall.d/$machine" + local custom_script="$UPDATEALL_CUSTOM_DIR/$machine" if [ -f "$custom_script" ]; then echo -e " - Exécution du script spécifique pour ${GREEN}$machine${NC}" @@ -328,7 +333,7 @@ current=0 for machine in "${machines[@]}"; do - # Vérification si le nom de machine est présent dans le fichier .config/updateall-hosts + # Vérification si le nom de machine est présent dans $UPDATEALL_HOSTS echo -e "\n" ((current++)) @@ -364,7 +369,7 @@ for machine in "${machines[@]}"; do matched=1 break fi -done < ~/.config/updateall-hosts +done < "$UPDATEALL_HOSTS" if [ "$matched" != "1" ]; then check_host "$machine" diff --git a/prep.sh b/prep.sh index b4d61cd..8f0daa8 100755 --- a/prep.sh +++ b/prep.sh @@ -16,7 +16,7 @@ [[ ! -d "local/bin" ]] && { echo "Erreur : lancer depuis la racine du projet scripts-bash"; exit 1; } # Spécifier le chemin du fichier journal -log_dir="$HOME/log" +log_dir="${XDG_STATE_HOME:-$HOME/.local/state}/scripts-bash" log_file="${log_dir}/a5l-scripts_bash_prep-$(date '+%Y%m%d-%H%M%S')-$$.log" # Fonction pour afficher un message d'erreur et quitter le script en cas d'erreur diff --git a/uninstall.sh b/uninstall.sh index 9cdaf1e..27a74e4 100755 --- a/uninstall.sh +++ b/uninstall.sh @@ -1,7 +1,7 @@ #!/bin/bash # Chemin du fichier uninstall-list -uninstall_list_file=$HOME/.config/a5l_scripts-bash_uninstall-list +uninstall_list_file="${XDG_DATA_HOME:-$HOME/.local/share}/scripts-bash/uninstall-list" # Vérifie si le fichier uninstall-list existe if [ -e $uninstall_list_file ]; then