scripts/locales.pl mit und ohne Argument ausführbar gemacht
authorMoritz Bunkus <m.bunkus@linet-services.de>
Mon, 1 Feb 2010 14:52:12 +0000 (15:52 +0100)
committerSven Schöling <s.schoeling@linet-services.de>
Tue, 20 Jul 2010 09:54:24 +0000 (11:54 +0200)
Das locales.pl-Script kann wie folgt aufgerufen werden:

1. Aus einem locale-Unterverzeichnis, in dem 'all' und 'LANGUAGE'
existieren:

cd locale/de
../../scripts/locales.pl

2. Aus einem beliebigen Verzeichnis unter Angabe des Sprachkürzels:

./scripts/locales.pl de

3. Aus einem beliebigen Verzeichnis unter Angabe des relativen oder
absoluten Pfades zum locale-Unterverzeichnis:

./scripts/locales.pl ./locale/de

Conflicts:

scripts/locales.pl

scripts/locales.pl

index dd7c4ca..f2bf870 100755 (executable)
@@ -23,13 +23,12 @@ $OUTPUT_AUTOFLUSH = 1;
 my $opt_v  = 0;
 my $opt_n  = 0;
 my $opt_c  = 0;
-my $lang;
 my $debug  = 0;
 
 parse_args();
 
-my $basedir      = ".";
-my $locales_dir  = "$basedir/locale/$lang";
+my $basedir      = "../..";
+my $locales_dir  = ".";
 my $bindir       = "$basedir/bin/mozilla";
 my $dbupdir      = "$basedir/sql/Pg-upgrade";
 my $dbupdir2     = "$basedir/sql/Pg-upgrade2";
@@ -185,7 +184,25 @@ sub parse_args {
     exit 0;
   }
 
-  $lang = shift @ARGV   || croak 'need language code as argument';
+  if (@ARGV) {
+    my $arg = shift @ARGV;
+    my $ok  = 0;
+    foreach my $dir ("../locale/$arg", "locale/$arg", "../$arg", $arg) {
+      next unless -d $dir && -f "$dir/all" && -f "$dir/LANGUAGE";
+      $ok = chdir $dir;
+      last;
+    }
+
+    if (!$ok) {
+      print "The locale directory '$arg' could not be found.\n";
+      exit 1;
+    }
+
+  } elsif (!-f 'all' || !-f 'LANGUAGE') {
+    print "locales.pl was not called from a locale/* subdirectory,\n"
+      .   "and no locale directory name was given.\n";
+    exit 1;
+  }
 }
 
 sub handle_file {