81 lines
1.7 KiB
Perl
Executable File
81 lines
1.7 KiB
Perl
Executable File
#!/usr/bin/perl
|
|
#
|
|
# This script goes and fixes the *_style names for random maps.
|
|
# It is aimed at the mlab maps. the original mlab maps used
|
|
# uppercase file names, which were quite ugly, and also put the
|
|
# new styles with old styles, which isn't good when it comes to
|
|
# random styles. Instead, I put those style maps into their own
|
|
# subdirectory so they should only show up on mlab maps.
|
|
#
|
|
|
|
&maplist(".");
|
|
|
|
while ($file = shift (@maps)) {
|
|
&updatemap;
|
|
}
|
|
|
|
|
|
exit;
|
|
|
|
# return table containing all objects in the map
|
|
sub updatemap {
|
|
local ($m, $made_change=0);
|
|
$last = "";
|
|
$parent = "";
|
|
|
|
if (! open (IN, $file)) {
|
|
print "Can't open map file $file\n";
|
|
return;
|
|
}
|
|
if (! open(OUT, ">$file.new")) {
|
|
print "Can't open output file $file.new\n";
|
|
return;
|
|
}
|
|
if ($VERBOSE) {
|
|
print "Testing $file, ";
|
|
}
|
|
while (<IN>) {
|
|
if (/(.*style) (MLAB.*)/) {
|
|
$style= $1 . "style";
|
|
$dest = "mlab/" . $2;
|
|
$dest =~ tr /A-Z/a-z/;
|
|
print OUT "$style $dest\n";
|
|
$made_change=1;
|
|
} else {
|
|
print OUT $_;
|
|
}
|
|
} # while <IN> LOOP
|
|
close (IN);
|
|
close(OUT);
|
|
if ($made_change) {
|
|
print "$file has changed\n";
|
|
unlink($file);
|
|
rename("$file.new", $file);
|
|
}
|
|
else {
|
|
unlink("$file.new");
|
|
}
|
|
}
|
|
|
|
# @maps contains all filenames
|
|
sub maplist {
|
|
local ($dir, $file, @dirs) = shift;
|
|
|
|
opendir (DIR , $dir) || die "Can't open directory : $dir\n";
|
|
while ($file = readdir (DIR)) {
|
|
next if ($file eq "." || $file eq ".." || $file eq "CVS");
|
|
|
|
$file = "$dir/$file";
|
|
next if (-l $file); # don't process symbolic links
|
|
push (@dirs, $file) if (-d $file);
|
|
push (@maps, $file) if (-f $file);
|
|
}
|
|
closedir (DIR);
|
|
|
|
# recursive handle sub-dirs too
|
|
while ($_ = shift @dirs) {
|
|
&maplist ($_);
|
|
}
|
|
}
|
|
|