Add database dump action to menu
This commit is contained in:
@@ -11,6 +11,7 @@ use Util;
|
||||
use Mars;
|
||||
use TUI;
|
||||
use Filters;
|
||||
use File::Temp;
|
||||
use Text::CSV_XS;
|
||||
|
||||
use feature 'say';
|
||||
@@ -29,6 +30,7 @@ my $local_archive_dir = "$local_root/injections";
|
||||
my $local_charts_dir = "$local_root/scripts/charts";
|
||||
my $local_ghidra_projects = "$local_root/ghidra";
|
||||
my $local_ghidra_scripts = "$local_root/scripts/ghidra";
|
||||
my $local_dump_dir = "$local_root/dumps";
|
||||
my $local_db_conf = "$local_root/db.conf";
|
||||
|
||||
my $resultbrowser_port = '5000';
|
||||
@@ -773,6 +775,48 @@ my %handlers = (
|
||||
}
|
||||
},
|
||||
|
||||
'31. Dump Database (Mars)' => sub {
|
||||
|
||||
# Dump databases from mars into $local_dump_dir
|
||||
my @dbs = Mars::db_list();
|
||||
my @dbs_with_notes;
|
||||
foreach my $db (@dbs) {
|
||||
my $info =
|
||||
Util::read_experiment_info( $db =~ s/smchurla_//r =~ s/:/-/gr );
|
||||
|
||||
push @dbs_with_notes,
|
||||
( defined $info && length($info) > 0 )
|
||||
? sprintf( "%-60s (%s)", $db, $info )
|
||||
: $db;
|
||||
}
|
||||
|
||||
my @selected_dbs =
|
||||
TUI::select_from_list( "Select Databases to Dump from Mars",
|
||||
1, @dbs_with_notes );
|
||||
die "No database selected" unless @selected_dbs;
|
||||
|
||||
@selected_dbs =
|
||||
map { s/(.*?)\s+\(.+\)$/$1/r } @selected_dbs;
|
||||
|
||||
system( 'mkdir', '-p', $local_dump_dir );
|
||||
|
||||
# Mariadb complains about the database= line, so strip it out
|
||||
my ( $dump_conf_handle, $dump_conf ) =
|
||||
File::Temp::tempfile( 'db-dump-XXXXXX', TMPDIR => 1, UNLINK => 1 );
|
||||
print $dump_conf_handle
|
||||
grep { !/^\s*database\s*=/ } split /^/,
|
||||
Util::read_file($local_db_conf);
|
||||
close($dump_conf_handle) or die "failed to close $dump_conf: $!";
|
||||
|
||||
foreach my $db (@selected_dbs) {
|
||||
my $dump_file = "$local_dump_dir/" . $db =~ s/:/-/gr . ".sql";
|
||||
|
||||
say "Dumping $db to $dump_file...";
|
||||
Util::run( 'mariadb-dump', "--defaults-file=$dump_conf",
|
||||
"--result-file=$dump_file", $db );
|
||||
}
|
||||
},
|
||||
|
||||
'95. Delete Builds' => sub {
|
||||
|
||||
# Delete old build files
|
||||
|
||||
Reference in New Issue
Block a user