Generate query and results and charts in separate directory
This commit is contained in:
+25
-12
@@ -17,6 +17,7 @@ use feature 'say';
|
||||
|
||||
my $local_root = '/home/christoph/Notes/TU/MastersThesis/FailNix';
|
||||
my $local_archive_dir = "$local_root/injections";
|
||||
my $local_queries_dir = "$local_root/queries";
|
||||
|
||||
my $ntfy_url = 'https://ntfy.vps.chriphost.de';
|
||||
my $ntfy_token = 'tk_rx8fd6hojuz4ekcb72j7juugkbmga'; # May be public
|
||||
@@ -133,8 +134,8 @@ sub find_subdirs {
|
||||
}
|
||||
|
||||
sub execute_query {
|
||||
my ( $experiment, $queryname, $db_conf, $builds_dir, $do_notify_file,
|
||||
@filter_config_names )
|
||||
my ( $experiment, $queryname, $db_conf, $experiment_dir, $output_dir,
|
||||
$output_prefix, $do_notify_file, @filter_config_names )
|
||||
= @_;
|
||||
|
||||
my $module = "$queryname";
|
||||
@@ -150,7 +151,7 @@ sub execute_query {
|
||||
or die "$module can't postprocess()";
|
||||
|
||||
my $querystring =
|
||||
$query->( $experiment, "$builds_dir/$experiment", @filter_config_names );
|
||||
$query->( $experiment, $experiment_dir, @filter_config_names );
|
||||
my $argsstring = $args->();
|
||||
my $filenamestring = $filename->(@filter_config_names);
|
||||
|
||||
@@ -162,14 +163,16 @@ sub execute_query {
|
||||
|
||||
$postprocess->($result);
|
||||
|
||||
system( 'mkdir', '-p', "$builds_dir/$experiment" );
|
||||
open( my $results_handle, '>', "$builds_dir/$experiment/$filenamestring" )
|
||||
my $resultfile = "$output_dir/${output_prefix}${filenamestring}";
|
||||
|
||||
system( 'mkdir', '-p', $output_dir );
|
||||
open( my $results_handle, '>', $resultfile )
|
||||
or die "failed to open file: $!";
|
||||
print $results_handle $result;
|
||||
close($results_handle) or die "failed to close file: $!";
|
||||
|
||||
if ( defined $do_notify_file and $do_notify_file == 1 ) {
|
||||
notify_file("$builds_dir/$experiment/$filenamestring");
|
||||
notify_file($resultfile);
|
||||
}
|
||||
|
||||
return $result;
|
||||
@@ -359,21 +362,31 @@ sub delete_marker_info {
|
||||
"$local_archive_dir/$experiment/markers/$benchmark-$address.info" );
|
||||
}
|
||||
|
||||
sub pick_data_file {
|
||||
my ( $dir, $prefix ) = @_;
|
||||
sub pick_query_file {
|
||||
my ( $experiment, $prefix ) = @_;
|
||||
|
||||
die "No query directory $local_queries_dir\n"
|
||||
unless -d $local_queries_dir;
|
||||
|
||||
# \Q...\E treats ... as literal string
|
||||
my @files = sort grep { /^\Q$prefix\E.*\.csv$/ } find_files($dir);
|
||||
my @files =
|
||||
sort grep { /^\Q${experiment}_\E\Q$prefix\E.*\.csv$/ }
|
||||
find_files($local_queries_dir);
|
||||
|
||||
die "No $prefix CSV files found in $dir\n" unless @files;
|
||||
return $files[0] if @files == 1;
|
||||
die "No $prefix CSV files found for $experiment in $local_queries_dir\n"
|
||||
unless @files;
|
||||
|
||||
# Strip the experiment prefix
|
||||
my @names = map { s/^\Q${experiment}_\E//r } @files;
|
||||
|
||||
return $names[0] if @names == 1;
|
||||
|
||||
# Make sure the unfiltered file is at the top
|
||||
my @sorted = sort {
|
||||
( $a eq "$prefix.csv" ) ? -1
|
||||
: ( $b eq "$prefix.csv" ) ? 1
|
||||
: $a cmp $b
|
||||
} @files;
|
||||
} @names;
|
||||
|
||||
my @selected =
|
||||
TUI::select_from_list( "Select $prefix CSV file", 0, @sorted );
|
||||
|
||||
Reference in New Issue
Block a user