1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
#!/usr/bin/perl
#
# auto-record ARB-session
# (for debugging purposes; user could as well record ARB crashes)
#
# call via:
# arb_ntree --execute _dolog database.arb
#
# rerun via
# arb_ntree --execute _logged database.arb
use strict;
use warnings;
use lib "$ENV{'ARBHOME'}/lib/";
use ARB;
my $logged_amc = '_logged.amc';
my $gb_main = ARB::open(":","r");
if (not $gb_main) {
my $error = ARB::await_error();
die "$error";
}
my $macrodir = ARB::getenvARBMACROHOME();
if (defined $macrodir) {
if (not -d $macrodir) { die "No such directory '$macrodir'"; }
my $last_logged = $macrodir.'/'.$logged_amc;
if (-f $last_logged) {
my $backupDir = $macrodir.'/_backup';
if (not -d $backupDir) {
mkdir($backupDir) || die "Failed to create directory '$backupDir' (Reason: $!)";
}
my $modtime = (stat $last_logged)[9];
my $backup = $backupDir.'/_logged_'.$modtime.'.amc';
print "backup '$last_logged' -> '$backup'\n";
my $cmd = "cp -p $last_logged $backup";
system($cmd)==0 || die "Failed to execute '$cmd'";
}
BIO::remote_action($gb_main,"ARB_NT","macros");
BIO::remote_awar($gb_main,"ARB_NT","tmp/macro/file_name",$logged_amc);
BIO::remote_action($gb_main,"ARB_NT","MACROS/macro_record"); # hack :)
BIO::remote_action($gb_main,"ARB_NT","MACROS/CLOSE");
}
ARB::close($gb_main);
|