11 print "## updating topology of $ocean\n";
12 system('./yppedia-chart-parser',$ocean); die $? if $?;
17 print STDERR "## updating schema and commodities for $ocean\n";
18 system('./db-idempotent-populate',$ocean); die $? if $?;
23 sub update_master_info () {
24 my $sfn= 'source-info.txt';
26 foreach my $v (1..$masterinfoversion) {
27 my $dfnl= sprintf "master-info%s.txt", ($v>1 ? "-v$v" : '');
28 print STDERR "installing new $dfnl...\n";
30 my $dfn= "$rsyncdir/$dfnl";
31 my $sf= new IO::File $sfn or die "$sfn $!";
32 my $df= new IO::File "$dfn.tmp", 'w' or die "$dfn.tmp $!";
37 next if m/^\s*\#/ || !m/\S/;
41 die "$_ ?" unless defined $h;
42 if ($h =~ m/^commods|^\%[a-z]\b/) {
46 next if $h =~ m/^nocommods/;
48 print $df $_, "\n" or die $!;
51 $sf->error and die $!;
53 rename "$dfn.tmp", "$dfn" or die $!;
65 return scalar shift @ARGV;
68 while (@ARGV && $ARGV[0] =~ m/^-/) {
72 if (s/^-d//) { $rsyncdir= optarg(); }
73 elsif (s/^-O//) { push @specoceans, optarg(); }
74 elsif (s/^-a//) { $alloceans=1; }
80 die if @specoceans && $alloceans;
82 parse_info_serverside();
85 print "### full update of specified oceans ...\n";
86 foreach my $ocean (@specoceans) {
87 die "$ocean ?" unless defined $oceans{$ocean};
90 } elsif ($alloceans) {
91 print "### full (inc.topology) update of all oceans ...\n";
92 foreach my $ocean (sort keys %oceans) {
96 print "### quick (no topology) update only (of all oceans) ...\n";
97 foreach my $ocean (sort keys %oceans) {
102 if (defined $rsyncdir) {
103 print "### master-info update ...\n";
104 update_master_info();