mirror of https://github.com/digint/btrbk
btrbk: add depends callback to scheduler
parent
480abe4311
commit
9f50d373f6
12
btrbk
12
btrbk
|
@ -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;
|
||||||
|
|
Loading…
Reference in New Issue