81 lines
1.9 KiB
Bash
Executable File
81 lines
1.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
italic="\033[3m"
|
|
underline="\033[4m"
|
|
ita_under="\033[3;4m"
|
|
bgd="\033[1;4;31m"
|
|
red="\033[1;31m"
|
|
bold="\033[1m"
|
|
box="\033[1;41m"
|
|
reset="\033[0m"
|
|
|
|
# No distract mode (no user interaction)
|
|
[[ $@ =~ "-nodistract" || $@ =~ "-n" ]] && no_distract=true || no_distract=false
|
|
|
|
command -v fd >/dev/null 2>&1 || { echo -e "${bold}Clean Lightroom backups${reset} require ${bold}fd${reset} but it's not installed.\nRun ${italic}(brew install fd)${reset}\nAborting..." >&2; exit 1; }
|
|
|
|
echo -e "${bold}+++ Clean Lightroom backups +++${reset}\n"
|
|
|
|
echo -e "${underline}Preferences:${reset}"
|
|
|
|
# Dossiers des catalogues Lightroom
|
|
lightroom=/Users/bruno/Pictures/Lightroom
|
|
echo "Catalog's folder: $lightroom"
|
|
|
|
# Liste des catalogues Lightroom
|
|
catalogs=$(fd -I -t file '^.*.lrcat$' $lightroom)
|
|
|
|
# Laisser n backup
|
|
n=2
|
|
echo -e "Keep $n backups..."
|
|
|
|
echo -e "Backups with extra names like '2022-01-20 0926 MàJ 2021' won't be deleted ...\n"
|
|
|
|
while IFS= read -r line; do
|
|
l="${line}"
|
|
|
|
catalog=$(basename "$l")
|
|
echo -e "${bold}$catalog${reset}"
|
|
folder=$(dirname "$l")
|
|
|
|
if [ -d "$folder/Backups" ]; then
|
|
|
|
backup=$(ls -t "$folder/Backups" | grep -v '[[:alpha:]]')
|
|
echo -e "${underline}Availables backup:${reset}"
|
|
echo "$backup"
|
|
nb=$(echo "$backup" | wc -l)
|
|
trash=$(echo "$backup" | tail -n $((nb-$n)))
|
|
|
|
if [ -n "$trash" ]; then
|
|
while IFS= read -r z; do
|
|
|
|
x="$folder/Backups/${z}"
|
|
|
|
if [ -d "$x" ]; then
|
|
|
|
if [ $(ls -A "$x" | wc -l) -ne 0 ]; then
|
|
|
|
if [ "$no_distract" = false ]; then
|
|
echo -e "${italic}Do you want to delete $x (y/n)?${reset}"
|
|
read -u 1 answer
|
|
if [[ $answer = y ]]; then
|
|
rm -r "$x"
|
|
fi
|
|
else
|
|
echo -e "${italic}Deleting $x ...${reset}"
|
|
rm -r "$x"
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
done <<< "$trash"
|
|
|
|
else
|
|
echo "No backup folder to delete !"
|
|
fi
|
|
|
|
echo ""
|
|
fi
|
|
|
|
done <<< "$catalogs"
|