File: convwiki.pl

package info (click to toggle)
josm 0.0.svn19369%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 243,336 kB
  • sloc: java: 490,598; xml: 201,669; perl: 10,314; jsp: 265; sh: 199; makefile: 120; javascript: 74; python: 60
file content (54 lines) | stat: -rw-r--r-- 1,395 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#! /usr/bin/perl -w

# Written by Dirk Stöcker <openstreetmap@dstoecker.de>
# Public domain, no rights reserved.

use strict;
use LWP::Simple;
use open qw/:std :encoding(utf8)/;

my $filename;
my $dir = $ARGV[1] || "build/josmfiles";
print "$ARGV[0]\n";
if($ARGV[0] && $ARGV[0] =~ /^https?:\/\//)
{
  $filename = $ARGV[2] || "build/josmfiles.zip";
  my $content = get($ARGV[0]);
  die "Couldn't get $ARGV[0]" unless defined $content;
  open FILE,">:raw",$filename or die "Could not open $filename";
  print FILE $content;
  close FILE
}
else
{
  $filename = $ARGV[0];
}
system "rm -rf $dir/";
print "Extracting to $dir\n";
mkdir $dir;
system "unzip -q -d $dir $filename";
foreach my $name (glob "$dir/*")
{
  if($name =~ /^(.*?)([^\/]+-preset\.xml)$/)
  {
    system "mv \"$name\" \"$name.orig\"";
    my ($path, $xmlname) = ($1, $2);
    my $res = `xmllint --format --schema $ENV{'TAGGING_PRESET_XSD'} \"$name.orig\" --encode utf-8 --output \"$name\" 2>&1`;
    print $res if $res !~ /\.orig validates/;
    system "perl convpreset.pl \"$name\" >\"${path}trans_$xmlname\"";
    unlink "$name.orig";
  }
  elsif($name =~ /^(.*?)([^\/]+-style\.xml$)/)
  {
    system "perl convstyle.pl \"$name\" >${1}trans_$2";
  }
  elsif($name =~ /^(.*?)([^\/]+\.mapcss)$/)
  {
    system "perl convcss.pl \"$name\" >${1}trans_$2";
  }
  else
  {
    die "Unknown file type \"$name\".";
  }
  unlink $name;
}