From 6373e3287548faca0ec2b63e9464ed7db7780b4f Mon Sep 17 00:00:00 2001 From: Axel Burri Date: Sat, 19 Nov 2022 13:45:19 +0100 Subject: [PATCH] btrbk: add depends callback to scheduler --- btrbk | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/btrbk b/btrbk index a66ff65..36a0744 100755 --- a/btrbk +++ b/btrbk @@ -4638,6 +4638,7 @@ sub schedule(@) my $result_hints = $args{result_hints} // {}; my $result_preserve_action_text = $args{result_preserve_action_text}; 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_hour_of_day = $preserve->{hod} // die; @@ -4786,6 +4787,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 my @delete; my @preserve;