Update faults filtering to be selectable from menu

This commit is contained in:
2026-06-13 21:22:56 +02:00
parent 797c9512b4
commit b344c55eee
8 changed files with 176 additions and 95 deletions

View File

@ -11,6 +11,7 @@ use lib "$FindBin::Bin/Modules";
use Util;
use Mars;
use TUI;
use Modules::Filters;
use Text::CSV_XS;
use feature 'say';
@ -85,15 +86,43 @@ my %handlers = (
TUI::select_from_list( "Select Queries to Run", 1, @queries );
die "No query selected" unless @selected_queries;
# Select filter configs
my @filter_choices = ("None");
my %filter_label_name;
my @filter_configs;
my $configs = Modules::Filters::get_configs();
foreach my $name ( sort keys %$configs ) {
my $label = $configs->{$name}{label};
push @filter_choices, $label;
$filter_label_name{$label} = $name;
}
my @selected_filter_labels =
TUI::select_from_list( "Select Filters to Apply", 1,
@filter_choices );
die "No filter selected" unless @selected_filter_labels;
@filter_configs = ();
foreach my $label (@selected_filter_labels) {
if ( $label eq "None" ) {
push @filter_configs, '';
}
else {
push @filter_configs, $filter_label_name{$label};
}
}
# Run queries on databases
foreach my $db (@selected_dbs) {
foreach my $query (@selected_queries) {
Util::rewrite_file( $local_db_conf, "database=",
"database=$db\n" );
foreach my $config (@filter_configs) {
Util::rewrite_file( $local_db_conf, "database=",
"database=$db\n" );
say "Running $query on $db...";
Util::execute_query( $db =~ s/smchurla_//r,
$query, $local_db_conf, $local_archive_dir, 0 );
my $config_label = length($config) ? " ($config)" : "";
say "Running $query$config_label on $db...";
Util::execute_query( $db =~ s/smchurla_//r,
$query, $local_db_conf, $local_archive_dir, 0,
$config );
}
}
}
},