chiark / gitweb /
Do not include vessel info in published _ocean-*.txt
[ypp-sc-tools.db-test.git] / yarrg / update-master-info
index 6d1cae7063bfa0947ca81080b3ee63db8610bc1b..b16e7b4704b4e486b4426ad423a81656bdd4d873 100755 (executable)
@@ -1,15 +1,66 @@
 #!/usr/bin/perl -w
+#
+# MAIN ADMINISTRATIVE DATABASE UPDATE TOOL
+#
+#  Usage:
+#     ./update-master-info [-d RSYNCDESTDIR] [-O OCEAN ... | -a]
+#
+#  Usual usages:
+#
+#    After editing source-info.txt to add commodities, or
+#    changing db-idempotent-update (eg to change the schema):
+#         ./update-master-info -d ~ftp/users/ijackson/yarrg/
+#    This will update everything except the ocean topologies.
+#
+#    To take account of new islands, or to fix a mistake in
+#    assigning island(s) to archipelago(es), or to add support
+#    for a new ocean:
+#         ./update-master-info -d ~ftp/users/ijackson/yarrg/ -O Midnight
+#
+#    After a fix to a mistake on a YPPedia chart page, correcting
+#    only inter-island-distances:
+#         ./update-master-info -O Midnight
+#
+#    After changing the algorithms for topology determination
+#    or YPPedia scraping:
+#         ./update-master-info -a
+#    and check that nothing unexpected changes.
+#
+
+# This is part of ypp-sc-tools, a set of third-party tools for assisting
+# players of Yohoho Puzzle Pirates.
+#
+# Copyright (C) 2009 Ian Jackson <ijackson@chiark.greenend.org.uk>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+# Yohoho and Puzzle Pirates are probably trademarks of Three Rings and
+# are used without permission.  This program is not endorsed or
+# sponsored by Three Rings.
 
 use strict (qw(vars));
 use DBI;
 use Commods;
 
+$ENV{'LC_CTYPE'}= 'en_GB.UTF-8';
 
 sub full ($) {
     my ($ocean) = @_;
     quick($ocean);
     print "## updating topology of $ocean\n";
-    system('./yppedia-chart-parser',$ocean); die $? if $?;
+    system('./yppedia-chart-parser',$ocean); die "$ocean $?" if $?;
+    print "\n";
 }
 
 sub quick ($) {
@@ -38,7 +89,8 @@ sub process_some_info ($$$) {
        if ($v<2) {
            next if $h =~ m/^nocommods/;
        }
-       next if $sfn =~ m/source-info/ && $h =~ m/^ocean/;
+       next if $sfn =~ m/source-info/ && $h =~ m/^ocean\b/;
+       next if $h =~ m/^client|^vessels|^shot\b/;
 
        print $df $_, "\n" or die $!;
     }
@@ -78,10 +130,17 @@ while (@ARGV && $ARGV[0] =~ m/^-/) {
     $_= shift @ARGV;
     last if m/^--?$/;
     while (m/^-./) {
-       if (s/^-d//) { $rsyncdir= optarg(); }
-       elsif (s/^-O//) { push @specoceans, optarg(); }
-       elsif (s/^-a//) { $alloceans=1; }
-       else { die "$_ ?"; }
+       if (s/^-d//) {
+           die if defined $rsyncdir;
+           $rsyncdir= optarg();
+       } elsif (s/^-O//) {
+           push @specoceans, optarg();
+       } elsif (s/^-a//) {
+           die if $alloceans;
+           $alloceans=1;
+       } else {
+           die "$_ ?";
+       }
     }
 }
 die if @ARGV;