btrbk: add depends callback to scheduler

delete-incremental-raw
Axel Burri 2022-11-19 13:45:19 +01:00
parent 480abe4311
commit 9f50d373f6
1 changed files with 12 additions and 0 deletions

12
btrbk
View File

@ -4634,6 +4634,7 @@ sub schedule(@)
my $result_hints = $args{result_hints} // {}; my $result_hints = $args{result_hints} // {};
my $result_preserve_action_text = $args{result_preserve_action_text}; my $result_preserve_action_text = $args{result_preserve_action_text};
my $result_delete_action_text = $args{result_delete_action_text} // 'delete'; my $result_delete_action_text = $args{result_delete_action_text} // 'delete';
my $depends_fn = $args{depends};
my $preserve_day_of_week = $preserve->{dow} || die; my $preserve_day_of_week = $preserve->{dow} || die;
my $preserve_hour_of_day = $preserve->{hod} // die; my $preserve_hour_of_day = $preserve->{hod} // die;
@ -4782,6 +4783,17 @@ sub schedule(@)
} }
} }
if($depends_fn) {
# for all preserved, check depends against all non-preserved
foreach my $href (grep $_->{preserve}, @sorted_schedule) {
my ($dtxt, $deps) = $depends_fn->($href, grep(!$_->{preserve}, @sorted_schedule));
foreach my $dep (@$deps) {
DEBUG "Preserving dependent: $dep->{value}{PRINT} <- $href->{value}{PRINT}";
$dep->{preserve} = "preserve forced: $dtxt";
}
}
}
# assemble results # assemble results
my @delete; my @delete;
my @preserve; my @preserve;