r1880 - trunk/misc
DONOTREPLY at icculus.org
DONOTREPLY at icculus.org
Thu Aug 31 15:49:00 EDT 2006
Author: div0
Date: 2006-08-31 15:49:00 -0400 (Thu, 31 Aug 2006)
New Revision: 1880
Modified:
trunk/misc/nexuiz-map-compiler
Log:
now restores shaderlist again and catches Ctrl-C
Modified: trunk/misc/nexuiz-map-compiler
===================================================================
--- trunk/misc/nexuiz-map-compiler 2006-08-31 19:40:10 UTC (rev 1879)
+++ trunk/misc/nexuiz-map-compiler 2006-08-31 19:49:00 UTC (rev 1880)
@@ -131,30 +131,55 @@
my %shaders = map { m!/([^/.]*)\.shader(?:$)! ? ($1 => 1) : () } glob "../scripts/*.shader";
open my $shaderlist, "+<", "$NEXUIZDIR/data/scripts/shaderlist.txt"
or die "open $NEXUIZDIR/data/scripts/shaderlist.txt: $!";
+ my $previous_shaderlist = "";
while(<$shaderlist>)
{
+ $previous_shaderlist .= $_;
y/\r\n//d;
delete $shaders{$_};
}
- for(keys %shaders)
+ my $restore_shaderlist = sub
{
- print $shaderlist "$_\n";
+ open $shaderlist, ">", "$NEXUIZDIR/data/scripts/shaderlist.txt";
+ print $shaderlist $previous_shaderlist;
+ close $shaderlist;
+ };
+ local $SIG{INT} = sub
+ {
+ print "SIGINT caught, cleaning up...\n";
+ $restore_shaderlist->();
+ exit 0;
+ };
+ eval
+ {
+ for(keys %shaders)
+ {
+ print $shaderlist "$_\n";
+ }
+ close $shaderlist;
+
+ q3map2 '-bsp', '-meta', @{$options->{bsp}}, "$m.map"
+ or die "-bsp: $?";
+ if($options->{scale} != 1)
+ {
+ q3map2 '-scale', $options->{scale}, "$m.bsp"
+ or die "-scale: $?";
+ rename "${m}_s.bsp", "$m.bsp"
+ or die "rename ${m}_s.bsp $m.bsp: $!";
+ }
+ q3map2 '-vis', @{$options->{vis}}, "$m.map"
+ or die "-vis: $?";
+ q3map2 '-light', @{$options->{light}}, "$m.map"
+ or die "-light: $?";
+
+ unlink "$m.srf";
+
+ $restore_shaderlist->();
+ 1;
}
- close $shaderlist;
-
- q3map2 '-bsp', '-meta', @{$options->{bsp}}, "$m.map"
- or die "-bsp: $?";
- if($options->{scale} != 1)
+ or do
{
- q3map2 '-scale', $options->{scale}, "$m.bsp"
- or die "-scale: $?";
- rename "${m}_s.bsp", "$m.bsp"
- or die "rename ${m}_s.bsp $m.bsp: $!";
- }
- q3map2 '-vis', @{$options->{vis}}, "$m.map"
- or die "-vis: $?";
- q3map2 '-light', @{$options->{light}}, "$m.map"
- or die "-light: $?";
-
- unlink "$m.srf";
+ $restore_shaderlist->();
+ die $@;
+ };
}
More information about the nexuiz-commits
mailing list