]> git.deb.at Git - deb/packages.git/commitdiff
create_index_pages: Do not die due to namespace collisions
authorFrank Lichtenheld <frank@lichtenheld.de>
Thu, 18 Jun 2009 19:27:58 +0000 (21:27 +0200)
committerFrank Lichtenheld <frank@lichtenheld.de>
Thu, 18 Jun 2009 19:32:13 +0000 (21:32 +0200)
If for whatever reason the same name appears in more than one
set of sections, subsections, and priorities, the code used
to die. The new code will not handle this very well either
(you will get repeated lines in the affected file), but
at least it will not take everything else with it.

bin/create_index_pages

index 3e9fc529f63ff74fe27dcc2590370e1e3c0c297c..66d78386f7cc37073f7237cfd88b877035b2abe4 100755 (executable)
@@ -10,6 +10,7 @@ use Storable;
 use HTML::Entities;
 use URI::Escape;
 use Compress::Zlib;
+use IO::Handle;
 
 use lib './lib';
 
@@ -75,6 +76,10 @@ sub open_file {
 
     print "opening $key\n";
     mkdirp ( "$wwwdir/$key" );
+    if ($fh{$key}) {
+       warn "filehandle for $key already open\n";
+       return;
+    }
     open($fh{$key}, '>',
         "$wwwdir/$key/$file.slices.new")
        or die "Cannot open file $wwwdir/$key/$file.slices.new: $!";
@@ -95,6 +100,10 @@ sub close_file {
     $file ||= 'index';
 
     print "closing $key\n";
+    unless ($fh{$key}->opened()) {
+       warn "filehandle for $key already closed\n";
+       return;
+    }
 
     foreach my $lang (@LANGUAGES) {
        print {$fh{$key}} "\n$s{begin}{$lang}\n";