-###RUN_PERL: #!/usr/bin/perl
+#!/usr/bin/perl
# update.pl is generated from update.1.pl.
#
###PERL_LIB: use lib /botm/lib/bsta
use botm_common (
- 'read_data_file',
- 'join_path'
);
use bsta_lib (
'STATE',
'ong',
- 'write_index', 'write_static_viewer_page'
+ 'write_index', 'write_static_viewer_page', 'write_static_goto',
+ 'read_frame_data', 'read_default', 'read_words_list',
+ 'read_settings', 'read_state'
);
-###PERL_PATH_SEPARATOR: PATH_SEPARATOR = /
-
-###PERL_DATA_PATH: DATA_PATH = /botm/data/bsta/
-###PERL_DATA_DEFAULT_PATH: DATA_DEFAULT_PATH = /botm/data/bsta/default
-###PERL_DATA_SETTINGS_PATH: DATA_SETTINGS_PATH = /botm/data/bsta/settings
-###PERL_DATA_STATE_PATH: DATA_STATE_PATH = /botm/data/bsta/state
-###PERL_DATA_WORDS_PATH: DATA_WORDS_PATH = /botm/data/bsta/words/
-
binmode STDIN, ':encoding(UTF-8)';
binmode STDOUT, ':encoding(UTF-8)';
binmode STDERR, ':encoding(UTF-8)';
my $time = time();
srand ($time-$$);
-my %settings = read_data_file(DATA_SETTINGS_PATH());
-my %default = read_data_file(DATA_DEFAULT_PATH());
-my %state = read_data_file(DATA_STATE_PATH());
+my %settings = read_settings();
+my %default = read_default();
+my %state = read_state();
my %all_frame_data = ();
my %all_words_data = ();
+my $update_goto = 0;
+
my $ong_state = int($state{'state'});
my $last_frame = ($ong_state > STATE->{'inactive'}) ?
int($state{'last'}) :
foreach my $id (@ARGV) {
if ($id eq 'all') {
+ $update_goto = 1;
push @list, 'i';
push @list, 'c';
for (my $f=0; $f<=$last_frame; $f+=1) {
}
}
elsif ($id =~ /^[0-9]+$/) {
+ $update_goto = 1;
my $f = int($&);
if ($f <= $last_frame) {
push @list, $f
}
}
+# duplicated - before AND after normal pages!
+if ($update_goto) {
+ print 'static GOTO';
+ my $r = write_static_goto(
+ \%state,
+ \%settings,
+ '' # \%goto_list
+ );
+ if ($r) {
+ print " OK\n";
+ }
+ else {
+ print " FAIL\n";
+ $fail += 1;
+ }
+}
+
foreach my $id (@list) {
print "ONG $id\n";
my $r = ong(
}
make_static_pages($id);
}
+
+# duplicated - before AND after normal pages!
+if ($update_goto) {
+ print 'static GOTO';
+ my $r = write_static_goto(
+ \%state,
+ \%settings,
+ '' # \%goto_list
+ );
+ if ($r) {
+ print " OK\n";
+ }
+ else {
+ print " FAIL\n";
+ $fail += 1;
+ }
+}
+
print "\n";
return $r;
}
- my %frame_data = read_data_file(
- join_path(PATH_SEPARATOR(), DATA_PATH(), $f)
- );
+ my %frame_data = read_frame_data($f);
$all_frame_data{$f} = \%frame_data;
return \%frame_data;
}
return $r;
}
- my %frame_data = read_data_file(
- join_path(PATH_SEPARATOR(), DATA_WORDS_PATH(), $f),
- '', # encoding,
- 0, # no header
- 1, # header only
- 1, # as list; not relevant
- );
- $all_words_data{$f} = \%frame_data;
- return \%frame_data;
+ my %words_data = read_words_list($f, 1);
+ $all_words_data{$f} = \%words_data;
+ return \%words_data;
}
sub make_static_page {
return;
}
my $f = int($id);
- unless (($f >= 0) && ($f <= $last_frame)) {
+ unless (
+ ($f >= 0) && (
+ ($f < $last_frame) || (
+ ($ong_state >= STATE->{'end'}) &&
+ ($f <= $last_frame)
+ )
+ )
+ ) {
return;
}
my $r;