| 1 | #! /usr/bin/perl -w | 
|---|
| 2 |  | 
|---|
| 3 | # Written by Dirk Stöcker <openstreetmap@dstoecker.de> | 
|---|
| 4 | # Public domain, no rights reserved. | 
|---|
| 5 |  | 
|---|
| 6 | use strict; | 
|---|
| 7 | use LWP::Simple; | 
|---|
| 8 | use open qw/:std :encoding(utf8)/; | 
|---|
| 9 |  | 
|---|
| 10 | my $filename; | 
|---|
| 11 | my $dir = $ARGV[1] || "build/josmfiles"; | 
|---|
| 12 | print "$ARGV[0]\n"; | 
|---|
| 13 | if($ARGV[0] && $ARGV[0] =~ /^https?:\/\//) | 
|---|
| 14 | { | 
|---|
| 15 | $filename = $ARGV[2] || "build/josmfiles.zip"; | 
|---|
| 16 | my $content = get($ARGV[0]); | 
|---|
| 17 | die "Couldn't get $ARGV[0]" unless defined $content; | 
|---|
| 18 | open FILE,">:raw",$filename or die "Could not open $filename"; | 
|---|
| 19 | print FILE $content; | 
|---|
| 20 | close FILE | 
|---|
| 21 | } | 
|---|
| 22 | else | 
|---|
| 23 | { | 
|---|
| 24 | $filename = $ARGV[0]; | 
|---|
| 25 | } | 
|---|
| 26 | system "rm -rf $dir/"; | 
|---|
| 27 | print "Extracting to $dir\n"; | 
|---|
| 28 | mkdir $dir; | 
|---|
| 29 | system "unzip -q -d $dir $filename"; | 
|---|
| 30 | foreach my $name (glob "$dir/*") | 
|---|
| 31 | { | 
|---|
| 32 | if($name =~ /^(.*?)([^\/]+-preset\.xml)$/) | 
|---|
| 33 | { | 
|---|
| 34 | system "mv \"$name\" \"$name.orig\""; | 
|---|
| 35 | my ($path, $xmlname) = ($1, $2); | 
|---|
| 36 | my $res = `xmllint --format --schema $ENV{'TAGGING_PRESET_XSD'} \"$name.orig\" --encode utf-8 --output \"$name\" 2>&1`; | 
|---|
| 37 | print $res if $res !~ /\.orig validates/; | 
|---|
| 38 | system "perl convpreset.pl \"$name\" >\"${path}trans_$xmlname\""; | 
|---|
| 39 | unlink "$name.orig"; | 
|---|
| 40 | } | 
|---|
| 41 | elsif($name =~ /^(.*?)([^\/]+-style\.xml$)/) | 
|---|
| 42 | { | 
|---|
| 43 | system "perl convstyle.pl \"$name\" >${1}trans_$2"; | 
|---|
| 44 | } | 
|---|
| 45 | elsif($name =~ /^(.*?)([^\/]+\.mapcss)$/) | 
|---|
| 46 | { | 
|---|
| 47 | system "perl convcss.pl \"$name\" >${1}trans_$2"; | 
|---|
| 48 | } | 
|---|
| 49 | else | 
|---|
| 50 | { | 
|---|
| 51 | die "Unknown file type \"$name\"."; | 
|---|
| 52 | } | 
|---|
| 53 | unlink $name; | 
|---|
| 54 | } | 
|---|