Delete related files when deleting archived experiments from menu

This commit is contained in:
2026-09-20 11:18:35 +02:00
parent 4b5f714b6c
commit eed9f5b16e
+38
View File
@@ -1129,6 +1129,44 @@ my %handlers = (
system( 'rm', '-rf', "$local_archive_dir/$_" )
for @selected_experiments;
# Find related query and chart files by experiment prefix
my $belongs_to_experiment = sub {
my ($file) = @_;
return grep { $file =~ /^\Q$_\E_/ } @selected_experiments;
};
my @groups;
for my $group (
[ 'Queries', $local_queries_dir ],
[ 'Charts', $local_charts_out_dir ],
) {
my ( $label, $dir ) = @$group;
next unless -d $dir;
my @files =
grep { $belongs_to_experiment->($_) } Util::find_files($dir);
push @groups,
{
label => sprintf( '%s (%d files)', $label, scalar @files ),
dir => $dir,
files => \@files,
}
if @files;
}
# Ask which related files to delete as well
if (@groups) {
my @selected_labels =
TUI::select_from_list( "Also delete related files?", 1,
map { $_->{label} } @groups );
foreach my $group (@groups) {
next unless grep { $_ eq $group->{label} } @selected_labels;
system( 'rm', '-f', "$group->{dir}/$_" )
for @{ $group->{files} };
}
}
},
'99. Drop Databases (Mars)' => sub {