rotate_folder now correctly handles "zero elements to keep" directives.
This commit is contained in:
@@ -55,6 +55,8 @@
|
||||
# Author: Kovács Zoltán <kovacs.zoltan@smartfront.hu>
|
||||
# Kovács Zoltán <kovacsz@marcusconsulting.hu>
|
||||
# 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
|
||||
# fix: now correctly handles configuration file pathnames containing spaces.
|
||||
# 2025-03-06 v1.1
|
||||
@@ -304,13 +306,15 @@ function rotate_class {
|
||||
# This week concluded.
|
||||
done
|
||||
# The weekly schedule concluded.
|
||||
# If we didn't save any file within this schedule we'll retain this file.
|
||||
if [[ -z "$last_retained" && $pointer -lt ${#class_files[@]} ]]; then
|
||||
last_retained="$file_mtime"
|
||||
[[ -z "$DOIT" ]] && echo "WR ${class_files[$pointer]}"
|
||||
(( pointer++ ))
|
||||
[[ $pointer -lt ${#class_files[@]} ]] \
|
||||
&& file_mtime=$("$STAT" -c %Y "$BACKUP_FOLDER/${class_files[$pointer]}")
|
||||
if [[ "$RETAIN_WEEKS" -ge 1 ]]; then
|
||||
# If we didn't save any file within this schedule we'll retain this file.
|
||||
if [[ -z "$last_retained" && $pointer -lt ${#class_files[@]} ]]; then
|
||||
last_retained="$file_mtime"
|
||||
[[ -z "$DOIT" ]] && echo "WR ${class_files[$pointer]}"
|
||||
(( pointer++ ))
|
||||
[[ $pointer -lt ${#class_files[@]} ]] \
|
||||
&& file_mtime=$("$STAT" -c %Y "$BACKUP_FOLDER/${class_files[$pointer]}")
|
||||
fi
|
||||
fi
|
||||
|
||||
# The monthly schedule.
|
||||
@@ -348,13 +352,15 @@ function rotate_class {
|
||||
# This month concluded.
|
||||
done
|
||||
# The monthly schedule concluded.
|
||||
# If we didn't save any file within this schedule we'll retain this file.
|
||||
if [[ -z "$last_retained" && $pointer -lt ${#class_files[@]} ]]; then
|
||||
last_retained="$file_mtime"
|
||||
[[ -z "$DOIT" ]] && echo "MR ${class_files[$pointer]}"
|
||||
(( pointer++ ))
|
||||
[[ $pointer -lt ${#class_files[@]} ]] \
|
||||
&& file_mtime=$("$STAT" -c %Y "$BACKUP_FOLDER/${class_files[$pointer]}")
|
||||
if [[ "$RETAIN_MONTHS" -ge 1 ]]; then
|
||||
# If we didn't save any file within this schedule we'll retain this file.
|
||||
if [[ -z "$last_retained" && $pointer -lt ${#class_files[@]} ]]; then
|
||||
last_retained="$file_mtime"
|
||||
[[ -z "$DOIT" ]] && echo "MR ${class_files[$pointer]}"
|
||||
(( pointer++ ))
|
||||
[[ $pointer -lt ${#class_files[@]} ]] \
|
||||
&& file_mtime=$("$STAT" -c %Y "$BACKUP_FOLDER/${class_files[$pointer]}")
|
||||
fi
|
||||
fi
|
||||
|
||||
# All the schedules have been processed.
|
||||
|
Reference in New Issue
Block a user