2
0

rotate_folder now correctly handles "zero elements to keep" directives.

This commit is contained in:
2025-09-21 11:20:56 +02:00
parent 8f211002ff
commit e7054c4e7d
2 changed files with 20 additions and 14 deletions

BIN
.metadata

Binary file not shown.

View File

@@ -55,6 +55,8 @@
# Author: Kovács Zoltán <kovacs.zoltan@smartfront.hu> # Author: Kovács Zoltán <kovacs.zoltan@smartfront.hu>
# Kovács Zoltán <kovacsz@marcusconsulting.hu> # Kovács Zoltán <kovacsz@marcusconsulting.hu>
# License: GNU/GPL v3+ (https://www.gnu.org/licenses/gpl-3.0.en.html) # License: GNU/GPL v3+ (https://www.gnu.org/licenses/gpl-3.0.en.html)
# 2025-09-15 v1.3
# fix: now correctly handles "zero elements to keep" directives.
# 2025-08-12 v1.2 # 2025-08-12 v1.2
# fix: now correctly handles configuration file pathnames containing spaces. # fix: now correctly handles configuration file pathnames containing spaces.
# 2025-03-06 v1.1 # 2025-03-06 v1.1
@@ -304,13 +306,15 @@ function rotate_class {
# This week concluded. # This week concluded.
done done
# The weekly schedule concluded. # The weekly schedule concluded.
# If we didn't save any file within this schedule we'll retain this file. if [[ "$RETAIN_WEEKS" -ge 1 ]]; then
if [[ -z "$last_retained" && $pointer -lt ${#class_files[@]} ]]; then # If we didn't save any file within this schedule we'll retain this file.
last_retained="$file_mtime" if [[ -z "$last_retained" && $pointer -lt ${#class_files[@]} ]]; then
[[ -z "$DOIT" ]] && echo "WR ${class_files[$pointer]}" last_retained="$file_mtime"
(( pointer++ )) [[ -z "$DOIT" ]] && echo "WR ${class_files[$pointer]}"
[[ $pointer -lt ${#class_files[@]} ]] \ (( pointer++ ))
&& file_mtime=$("$STAT" -c %Y "$BACKUP_FOLDER/${class_files[$pointer]}") [[ $pointer -lt ${#class_files[@]} ]] \
&& file_mtime=$("$STAT" -c %Y "$BACKUP_FOLDER/${class_files[$pointer]}")
fi
fi fi
# The monthly schedule. # The monthly schedule.
@@ -348,13 +352,15 @@ function rotate_class {
# This month concluded. # This month concluded.
done done
# The monthly schedule concluded. # The monthly schedule concluded.
# If we didn't save any file within this schedule we'll retain this file. if [[ "$RETAIN_MONTHS" -ge 1 ]]; then
if [[ -z "$last_retained" && $pointer -lt ${#class_files[@]} ]]; then # If we didn't save any file within this schedule we'll retain this file.
last_retained="$file_mtime" if [[ -z "$last_retained" && $pointer -lt ${#class_files[@]} ]]; then
[[ -z "$DOIT" ]] && echo "MR ${class_files[$pointer]}" last_retained="$file_mtime"
(( pointer++ )) [[ -z "$DOIT" ]] && echo "MR ${class_files[$pointer]}"
[[ $pointer -lt ${#class_files[@]} ]] \ (( pointer++ ))
&& file_mtime=$("$STAT" -c %Y "$BACKUP_FOLDER/${class_files[$pointer]}") [[ $pointer -lt ${#class_files[@]} ]] \
&& file_mtime=$("$STAT" -c %Y "$BACKUP_FOLDER/${class_files[$pointer]}")
fi
fi fi
# All the schedules have been processed. # All the schedules have been processed.