1 | #!/usr/bin/perl -w
|
---|
2 |
|
---|
3 | use strict;
|
---|
4 |
|
---|
5 | my %lang = map {$_ => 1} (
|
---|
6 | "ar", "bg", "cs", "da", "de", "el", "en_AU", "en_GB",
|
---|
7 | "es", "et", "eu", "fi", "fr", "gl", "he", "id", "is",
|
---|
8 | "it", "ja", "nb", "nl", "pl", "pt_BR", "ru", "sk",
|
---|
9 | "sv", "tr", "uk", "zh_CN", "zh_TW"
|
---|
10 | );
|
---|
11 |
|
---|
12 | my $count = 0;#11;
|
---|
13 | my $cleanall = 0;#1;
|
---|
14 | my $upload = 0;#1;
|
---|
15 |
|
---|
16 | if($#ARGV != 0)
|
---|
17 | {
|
---|
18 | warn "URL not given (try Launchpad download URL or \"bzr\")."
|
---|
19 | }
|
---|
20 | elsif($ARGV[0] eq "bzr" || $ARGV[0] eq "bzronly")
|
---|
21 | {
|
---|
22 | mkdir "build";
|
---|
23 | die "Could not change into new data dir." if !chdir "build";
|
---|
24 | system "bzr export -v josm_trans lp:~openstreetmap/josm/josm_trans";
|
---|
25 | chdir "..";
|
---|
26 | copypo("build/josm_trans/josm");
|
---|
27 | system "rm -rv build/josm_trans";
|
---|
28 | exit(0) if $ARGV[0] eq "bzronly";
|
---|
29 | }
|
---|
30 | else
|
---|
31 | {
|
---|
32 | mkdir "build";
|
---|
33 | mkdir "build/josm_trans";
|
---|
34 | die "Could not change into new data dir." if !chdir "build/josm_trans";
|
---|
35 | system "wget $ARGV[0]";
|
---|
36 | system "tar -xf laun*";
|
---|
37 | chdir "../..";
|
---|
38 | copypo("build/josm_trans");
|
---|
39 | system "rm -rv build/josm_trans";
|
---|
40 | }
|
---|
41 |
|
---|
42 | system "ant";
|
---|
43 | if($upload)
|
---|
44 | {
|
---|
45 | my $outdate = `date -u +"%Y-%m-%dT%H_%M_%S"`;
|
---|
46 | chomp $outdate;
|
---|
47 | mkdir "build/josm";
|
---|
48 | system "cp po/*.po po/josm.pot build/josm";
|
---|
49 | chdir "build";
|
---|
50 | if(!$count)
|
---|
51 | {
|
---|
52 | system "tar -cjf ../launchpad_upload_josm_$outdate.tar.bz2 josm";
|
---|
53 | }
|
---|
54 | else
|
---|
55 | {
|
---|
56 | my @files = sort glob("josm/*.po");
|
---|
57 | my $num = 1;
|
---|
58 | while($#files >= 0)
|
---|
59 | {
|
---|
60 | my @f = splice(@files, 0, $count);
|
---|
61 | system "tar -cjf ../launchpad_upload_josm_${outdate}_$num.tar.bz2 josm/josm.pot ".join(" ",@f);
|
---|
62 | ++$num;
|
---|
63 | }
|
---|
64 | }
|
---|
65 | system "rm -rv josm";
|
---|
66 | chdir "..";
|
---|
67 | }
|
---|
68 |
|
---|
69 | sub copypo
|
---|
70 | {
|
---|
71 | my ($path) = @_;
|
---|
72 | foreach my $name (split("\n", `find $path -name "*.po"`))
|
---|
73 | {
|
---|
74 | $name =~ /([a-zA-Z_]+)\.po/;
|
---|
75 | if($lang{$1})
|
---|
76 | {
|
---|
77 | system "cp -v $name po/$1.po";
|
---|
78 | }
|
---|
79 | elsif($cleanall)
|
---|
80 | {
|
---|
81 | local $/; undef $/;
|
---|
82 | open FILE,"<",$name or die;
|
---|
83 | my $x = <FILE>;
|
---|
84 | close FILE;
|
---|
85 | $x =~ s/\n\n.*$/\n/s;
|
---|
86 | open FILE,">","po/$1.po" or die;
|
---|
87 | print FILE $x;
|
---|
88 | close FILE;
|
---|
89 | }
|
---|
90 | }
|
---|
91 | }
|
---|