diff --git a/scripts/menu.pl b/scripts/menu.pl index 9d898fe..28e240f 100644 --- a/scripts/menu.pl +++ b/scripts/menu.pl @@ -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