chiark / gitweb /
master-info sanitiser. master-info is now renamed source-info
[ypp-sc-tools.main.git] / yarrg / update-master-info
1 #!/usr/bin/perl -w
2
3 use strict (qw(vars));
4
5 use DBI;
6
7 use Commods;
8
9 @ARGV==1 or die;
10 my ($rsyncdir) = @ARGV;
11
12 parse_info_serverside();
13
14 foreach my $oceanname (sort keys %oceans) {
15     print STDERR "updating ocean $oceanname...\n";
16     system('./db-idempotent-populate',$oceanname); die $? if $?;
17 }
18
19 print STDERR "installing new master-info...\n";
20
21 my $sfn= 'source-info.txt';
22 my $dfn= "$rsyncdir/master-info.txt";
23
24 my $sf= new IO::File $sfn or die "$sfn $!";
25 my $df= new IO::File "$dfn.tmp", 'w' or die "$dfn.tmp $!";
26
27 my $h;
28 while (<$sf>) {
29     chomp; s/\s+$//;
30     next if m/^\s*\#/ || !m/\S/;
31     if (m/^\S.*/) {
32         $h= $&;
33     }
34     die "$_ ?" unless defined $h;
35     if ($h =~ m/^commods|^\%[a-z]\b/) {
36         s/\t.*//;
37     }
38     print $df $_, "\n" or die $!;
39 }
40
41 $sf->error and die $!;
42 close $df or die $!;
43 rename "$dfn.tmp", "$dfn" or die $!;