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 ($_);
 | 
						|
    }
 | 
						|
}
 | 
						|
 |