diff options
-rw-r--r-- | stage1/Stage1.scala | 2 | ||||
-rw-r--r-- | stage2/Stage2.scala | 7 | ||||
-rw-r--r-- | stage2/ToolsStage2.scala | 3 |
3 files changed, 8 insertions, 4 deletions
diff --git a/stage1/Stage1.scala b/stage1/Stage1.scala index 1fd4663..bf6a3d4 100644 --- a/stage1/Stage1.scala +++ b/stage1/Stage1.scala @@ -33,7 +33,7 @@ final case class Stage1ArgsParser(__args: Seq[String]) { abstract class Stage2Base{ - def run( context: Stage2Args ): Unit + def run( context: Stage2Args ): ExitCode } case class Stage2Args( diff --git a/stage2/Stage2.scala b/stage2/Stage2.scala index 542a982..0f5b557 100644 --- a/stage2/Stage2.scala +++ b/stage2/Stage2.scala @@ -7,7 +7,7 @@ object Stage2 extends Stage2Base{ new Lib( context.logger ).loadRoot( context ).finalBuild } - def run( args: Stage2Args ): Unit = { + def run( args: Stage2Args ): ExitCode = { import args.logger val paths = CbtPaths(args.cbtHome,args.cache) import paths._ @@ -75,10 +75,13 @@ object Stage2 extends Stage2Base{ logger.loop(s"Re-running $task for " ++ build.show) call(build) } + ExitCode.Success } else { val code = call(build) logger.stage2(s"Stage2 end") - System.exit(code.integer) + code } + + res } } diff --git a/stage2/ToolsStage2.scala b/stage2/ToolsStage2.scala index 2b5e092..2899173 100644 --- a/stage2/ToolsStage2.scala +++ b/stage2/ToolsStage2.scala @@ -1,12 +1,13 @@ package cbt import java.io._ object ToolsStage2 extends Stage2Base{ - def run( _args: Stage2Args ): Unit = { + def run( _args: Stage2Args ): ExitCode = { val args = _args.args.dropWhile(Seq("tools","direct") contains _) val lib = new Lib(_args.logger) val toolsTasks = new ToolsTasks(lib, args, _args.cwd, _args.classLoaderCache, _args.cache, _args.cbtHome, _args.stage2LastModified) new lib.ReflectObject(toolsTasks){ def usage: String = "Available methods: " ++ lib.taskNames(toolsTasks.getClass).mkString(" ") }.callNullary(args.lift(0)) + ExitCode.Success } } |