build: fixup header order in i18n-update.pl to minimize diffs to pootle
authorJo-Philipp Wich <jow@openwrt.org>
Sun, 1 Jul 2012 22:46:49 +0000 (22:46 +0000)
committerJo-Philipp Wich <jow@openwrt.org>
Sun, 1 Jul 2012 22:46:49 +0000 (22:46 +0000)
build/i18n-update.pl

index 0dd213a5356624a0e7291b3fc89574c6d97bb224..16b82e8dddc126d4223f251dfac42bd2794605f8 100755 (executable)
@@ -5,6 +5,22 @@
 my $source  = shift @ARGV;
 my $pattern = shift @ARGV || '*.po';
 
+sub fixup_header_order
+{
+       my $file = shift || return;
+       local $/;
+
+       open P, "< $file" || die "open(): $!";
+       my $data = readline P;
+       close P;
+
+       $data =~ s/("Language-Team: .*?\\n"\n)(.+?)("Language: .*?\\n"\n)/$1$3$2/s;
+
+       open P, "> $file" || die "open(): $!";
+       print P $data;
+       close P;
+}
+
 if( open F, "find $source -type f -name '$pattern' |" )
 {
        while( chomp( my $file = readline F ) )
@@ -15,6 +31,7 @@ if( open F, "find $source -type f -name '$pattern' |" )
                {
                        printf "Updating %-40s", $file;
                        system("msgmerge", "-U", "-N", $file, "$source/templates/$basename.pot");
+                       fixup_header_order($file);
                }
        }