add binaryninja action to menu

This commit is contained in:
2026-04-28 00:40:31 +02:00
parent c87409dd5c
commit e33fed9b8d

View File

@ -267,7 +267,22 @@ my %handlers = (
0, @entries );
},
'12. Open Experiment in Ghidra' => sub {
'12. Open Experiment in BinaryNinja' => sub {
my @selected_experiments = Util::select_experiment(1);
my @paths =
map { "$local_archive_dir/$_/system.elf" } @selected_experiments;
system( 'binaryninja', @paths );
},
'13. Open Experiment in Binsider' => sub {
my $selected_experiment = Util::select_experiment(0);
system( 'binsider',
"$local_archive_dir/$selected_experiment/system.elf" );
},
'14. Open Experiment in Ghidra' => sub {
my @projects =
map { s/\.gpr//r } Util::find_files($local_ghidra_projects);
@ -285,14 +300,7 @@ my %handlers = (
);
},
'13. Open Experiment in Binsider' => sub {
my $selected_experiment = Util::select_experiment(0);
system( 'binsider',
"$local_archive_dir/$selected_experiment/system.elf" );
},
'14. Open Database in ResultBrowser (Mars)' => sub {
'15. Open Database in ResultBrowser (Mars)' => sub {
my @db_names = Mars::db_list();
my @selected_dbs =
@ -308,7 +316,7 @@ my %handlers = (
"--port=$resultbrowser_port" );
},
'15. Open Database in LazySQL (Mars)' => sub {
'16. Open Database in LazySQL (Mars)' => sub {
my $experiment =
Util::select_experiment(0) =~ s/T(\d\d)-(\d\d)-(\d\d)/T$1:$2:$3/r;
my $ssh = Mars::ssh_connect();
@ -319,39 +327,6 @@ my %handlers = (
);
},
'16. Plot Results' => sub {
# Generate R ggplot2 charts
my @selected_experiments = Util::select_experiment(1);
my @charts = map { s/\.r//r } Util::find_files($local_charts_dir);
my @selected_charts =
TUI::select_from_list( "Select Plots to Generate", 1, @charts );
die "No plot selected" unless @selected_charts;
my @single_charts = grep { /single/ } @selected_charts;
foreach my $experiment (@selected_experiments) {
foreach my $chart (@single_charts) {
say " - Generating plot $chart for $experiment...";
system(
'Rscript',
"$local_charts_dir/$chart.r",
"$local_archive_dir/$experiment"
);
}
}
my @combined_charts = grep { /combined/ } @selected_charts;
my $print_experiments = join " ", @selected_experiments;
my @path_experiments =
map { "$local_archive_dir/$_" } @selected_experiments;
foreach my $chart (@combined_charts) {
say " - Generating plot $chart for ($print_experiments)...";
system( 'Rscript', "$local_charts_dir/$chart.r",
@path_experiments );
}
},
'20. Run Build in GDB' => sub {
my @builds = grep { /linux/ } Util::find_subdirs($local_builds_dir);
my @selected_builds =
@ -456,6 +431,39 @@ my %handlers = (
);
},
'30. Plot Results' => sub {
# Generate R ggplot2 charts
my @selected_experiments = Util::select_experiment(1);
my @charts = map { s/\.r//r } Util::find_files($local_charts_dir);
my @selected_charts =
TUI::select_from_list( "Select Plots to Generate", 1, @charts );
die "No plot selected" unless @selected_charts;
my @single_charts = grep { /single/ } @selected_charts;
foreach my $experiment (@selected_experiments) {
foreach my $chart (@single_charts) {
say " - Generating plot $chart for $experiment...";
system(
'Rscript',
"$local_charts_dir/$chart.r",
"$local_archive_dir/$experiment"
);
}
}
my @combined_charts = grep { /combined/ } @selected_charts;
my $print_experiments = join " ", @selected_experiments;
my @path_experiments =
map { "$local_archive_dir/$_" } @selected_experiments;
foreach my $chart (@combined_charts) {
say " - Generating plot $chart for ($print_experiments)...";
system( 'Rscript', "$local_charts_dir/$chart.r",
@path_experiments );
}
},
'95. Delete Builds' => sub {
# Delete old build files