Compare commits

...

2 Commits

2 changed files with 44 additions and 16 deletions

View File

@ -6,7 +6,7 @@ Le script `install.sh` a été créé pour automatiser le processus de copie de
1. Clonez ce dépôt Git 1. Clonez ce dépôt Git
2. Assurez-vous que le script est exécutable en utilisant la commande `chmod +x copy_files.sh`. 2. Assurez-vous que le script est exécutable en utilisant la commande `chmod +x copy_files.sh`.
3. Exécutez le script en utilisant `./copy_files.sh`. 3. Exécutez le script en utilisant `./install.sh`.
Toutes les opérations et les messages d'erreur sont enregistrés dans un fichier journal (`~/log/copy_files.log`) situé dans le répertoire personnel de l'utilisateur. Le journal comprend la date, l'heure, le numéro de processus (PID) et les messages d'exécution du script. Toutes les opérations et les messages d'erreur sont enregistrés dans un fichier journal (`~/log/copy_files.log`) situé dans le répertoire personnel de l'utilisateur. Le journal comprend la date, l'heure, le numéro de processus (PID) et les messages d'exécution du script.

View File

@ -30,10 +30,26 @@ create_dir() {
} }
add_uninstall() {
## Create or update uninstall script
uninstall_list=~/.config/$(basename "${0}")_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" log "Debut du script"
## Post traitement : log ## Post traitement : log
# S'assurer que le répertoire de destination existe, sinon, le créer # S'assurer que le répertoire de destination existe, sinon, le créer
create_dir ${log_dir} create_dir ${log_dir}
@ -69,8 +85,14 @@ if [ -e "$file_local_desc" ]; then
fileslist_local=$(cat "$file_local_desc") fileslist_local=$(cat "$file_local_desc")
# Utilisez la commande rsync pour copier les fichiers # Utilisez la commande rsync pour copier les fichiers
log " __ Copie des fichiers" log " Copie des fichiers listés dans $file_local_desc"
rsync -av --files-from="$file_local_desc" "$source_dir/" "$destination_dir/" >> "$log_file" 2>&1 || error "Échec de la copie avec rsync"
# Copier les fichiers en supprimant les extensions
for file in "$fileslist_local"; do
cp -v "$source_dir/$file" "$destination_dir/" || error "Impossible de fichier $source_dir/$file vers $destination_dir/"
log " Copie de $source_dir/$file vers $destination_dir/."
echo "$destination_dir/$file" > "$uninstall_list"
done
else 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é." 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é."
@ -116,8 +138,14 @@ if [ -e "$file_local_desc" ]; then
fileslist_local=$(cat "$file_local_desc") fileslist_local=$(cat "$file_local_desc")
# Utilisez la commande rsync pour copier les fichiers # Utilisez la commande rsync pour copier les fichiers
log " _ Copie des fichiers listés dans $file_local_desc" log " Copie des fichiers listés dans $file_local_desc"
rsync -av --files-from="$file_local_desc" "$source_dir/" "$destination_dir/" >> "$log_file" 2>&1 || error "Échec de copie"
# Copier les fichiers en supprimant les extensions
for file in "$fileslist_local"; do
cp -v "$source_dir/$file" "$destination_dir/" || error "Impossible de fichier $source_dir/$file vers $destination_dir/"
log " Copie de $source_dir/$file vers $destination_dir/"
echo "$destination_dir/$file" > "$uninstall_list"
done
else 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é." 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é."
@ -127,6 +155,8 @@ fi
#### .local/bin #### #### .local/bin ####
## Declarations ## ## Declarations ##
@ -144,7 +174,7 @@ file_local_desc=files_local-bin
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 # S'assurer que le répertoire de destination existe, sinon, le créer
create_dir $destination_dir create_dir "$destination_dir"
# Vérifier si le répertoire destination est déjà dans le PATH # Vérifier si le répertoire destination est déjà dans le PATH
if [[ ! ":$PATH:" == *":$destination_dir:"* ]]; then if [[ ! ":$PATH:" == *":$destination_dir:"* ]]; then
@ -159,19 +189,17 @@ log " _ Traitement des fichiers à copier dans $destination_dir"
# Vérifier si le fichier "$file_local_desc" existe # Vérifier si le fichier "$file_local_desc" existe
if [ -e "$file_local_desc" ]; then if [ -e "$file_local_desc" ]; then
# Récupérer des fichiers installés # Récupérer des fichiers installés
fileslist_local=$(cat $file_local_desc) fileslist_local=$(cat "$file_local_desc")
# Utilisez la commande rsync pour copier les fichiers # Utilisez la commande rsync pour copier les fichiers
log " __ Copie des fichiers" log " Copie des fichiers"
rsync -av --files-from=$file_local_desc "$source_dir/" "$destination_dir/" >> "$log_file" 2>&1 || error "Échec de la copie avec rsync"
# Renommez les fichiers en supprimant les extensions # Copier les fichiers en supprimant les extensions
for file in $fileslist_local; do for file in "$fileslist_local"; do
if [ -f "$destination_dir/$file" ]; then
new_name="${file%.*}" # Supprimer l'extension new_name="${file%.*}" # Supprimer l'extension
mv -v "$destination_dir/$file" "$destination_dir/$new_name" || error "Impossible de renommer le fichier $file en $new_name" cp -v "$source_dir/$file" "$destination_dir/$new_name" || error "Impossible de fichier $source_dir/$file vers $destination_dir/$new_nam"
log " __ Renommer $file -> $new_name." log " Copie de $source_dir/$file vers $destination_dir/$new_name"
fi echo "$destination_dir/$new_name" > "$uninstall_list"
done done
else else