aboutsummaryrefslogtreecommitdiff
path: root/stage1/Stage1Lib.scala
diff options
context:
space:
mode:
authorChristopher Vogt <oss.nsp@cvogt.org>2016-03-12 22:31:05 -0500
committerChristopher Vogt <oss.nsp@cvogt.org>2016-03-19 21:04:52 -0400
commitba49574e1bf51f7fb1a9cbfe94d3b7185afbbc80 (patch)
treec8e97a8a8d2cc95969179fcf2975ba4b4113c887 /stage1/Stage1Lib.scala
parentee7737c5648708bd841c1ef41c277a7324fd46da (diff)
downloadcbt-ba49574e1bf51f7fb1a9cbfe94d3b7185afbbc80.tar.gz
cbt-ba49574e1bf51f7fb1a9cbfe94d3b7185afbbc80.tar.bz2
cbt-ba49574e1bf51f7fb1a9cbfe94d3b7185afbbc80.zip
Make trapExitCode pass on previous exit codes
Diffstat (limited to 'stage1/Stage1Lib.scala')
-rw-r--r--stage1/Stage1Lib.scala8
1 files changed, 4 insertions, 4 deletions
diff --git a/stage1/Stage1Lib.scala b/stage1/Stage1Lib.scala
index b76e21b..d24ba52 100644
--- a/stage1/Stage1Lib.scala
+++ b/stage1/Stage1Lib.scala
@@ -14,7 +14,7 @@ import javax.xml.bind.annotation.adapters.HexBinaryAdapter
import scala.collection.immutable.Seq
// CLI interop
-case class ExitCode(code: Int)
+case class ExitCode(integer: Int)
object ExitCode{
val Success = ExitCode(0)
val Failure = ExitCode(1)
@@ -110,6 +110,7 @@ class Stage1Lib( val logger: Logger ) extends BaseLib{
.loadClass(cls)
.getMethod( "main", scala.reflect.classTag[Array[String]].runtimeClass )
.invoke( null, args.toArray.asInstanceOf[AnyRef] )
+ ExitCode.Success
}
}
@@ -187,7 +188,7 @@ class Stage1Lib( val logger: Logger ) extends BaseLib{
files.foreach(_.setLastModified(now))
// Tell the caller that things went wrong.
- System.exit(code.code)
+ System.exit(code.integer)
}
}
}
@@ -219,11 +220,10 @@ class Stage1Lib( val logger: Logger ) extends BaseLib{
}
}
- def trapExitCode( code: => Unit ): ExitCode = {
+ def trapExitCode( code: => ExitCode ): ExitCode = {
try{
System.setSecurityManager( trapSecurityManager )
code
- ExitCode.Success
} catch {
case TrappedExitCode(exitCode) =>
exitCode