50 |
$SIG{INT} = sub { |
$SIG{INT} = sub { |
51 |
my $signame = shift; |
my $signame = shift; |
52 |
send_nodes 'exit'; |
send_nodes 'exit'; |
53 |
|
#clean if $clean; # FIXME |
54 |
die "SIG$signame"; |
die "SIG$signame"; |
55 |
}; |
}; |
56 |
} |
} |
57 |
|
|
58 |
|
use lib "$prefix/srv/Sack/lib/"; |
59 |
# digest experiment |
use Sack::Digest; |
60 |
use BerkeleyDB; |
Sack::Digest->open( $port ); |
61 |
|
sub digest { Sack::Digest->digest($_[0]) } |
|
our $seq = 0; |
|
|
our $btree; |
|
|
my $db_file = "/dev/shm/sack.digest.$port.$offset-$limit"; |
|
|
sub digest { |
|
|
my $nr; |
|
|
if ( ! $btree ) { |
|
|
if ( -e $db_file ) { |
|
|
warn "[$port] CLEAN removed $db_file ", -s $db_file, " bytes\n"; |
|
|
unlink $db_file; |
|
|
} |
|
|
|
|
|
our $btree = BerkeleyDB::Btree->new( |
|
|
-Filename => $db_file, |
|
|
-Cachesize => 700_000_000, |
|
|
-Flags => DB_CREATE, |
|
|
) || die "$db_file: $!"; |
|
|
|
|
|
warn "[$port] BDB created $db_file\n"; |
|
|
} |
|
|
$btree->db_get( $_[0] => $nr ) == 0 && return $nr; |
|
|
$btree->db_put( $_[0] => ++$seq ) == 0 || die "$_[0] [$seq] $!"; |
|
|
$btree->db_put( $seq => $_[0] ) == 0 || die "[$seq] $_[0] $!"; |
|
|
return $seq; |
|
|
} |
|
|
|
|
62 |
|
|
63 |
use lib "$prefix/srv/webpac2/lib/"; |
use lib "$prefix/srv/webpac2/lib/"; |
64 |
use WebPAC::Input::ISI; |
use WebPAC::Input::ISI; |
326 |
|
|
327 |
__HELP__ |
__HELP__ |
328 |
} elsif ( $cmd =~ m{^(vi|\\e|o)}i ) { |
} elsif ( $cmd =~ m{^(vi|\\e|o)}i ) { |
329 |
system "vi out/*"; |
#system "vi out/*"; |
330 |
|
system "bin/storableedit.pl", (glob('out/*.storable'))[0]; |
331 |
} elsif ( $cmd =~ m{^i(?:nfo)?\s?(.+)?$}i ) { |
} elsif ( $cmd =~ m{^i(?:nfo)?\s?(.+)?$}i ) { |
332 |
info; |
info; |
333 |
} elsif ( $cmd =~ m{^(q|e|x)}i ) { |
} elsif ( $cmd =~ m{^(q|e|x)}i ) { |