From b5194aab6f1f57aff6e4538acaf91245fdf15039 Mon Sep 17 00:00:00 2001 From: Christopher Vogt Date: Thu, 15 Jun 2017 22:34:42 -0400 Subject: add process library with extracted and new functions --- stage2/BasicBuild.scala | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'stage2/BasicBuild.scala') diff --git a/stage2/BasicBuild.scala b/stage2/BasicBuild.scala index 0bdbad7..e41545b 100644 --- a/stage2/BasicBuild.scala +++ b/stage2/BasicBuild.scala @@ -319,4 +319,32 @@ trait BaseBuild extends BuildInterface with DependencyImplementation with SbtDep final def crossScalaVersionsArray = Array(scalaVersion) def publish: Seq[URL] = Seq() + + def fork = false + + def runForked: ExitCode = { + val ( pid, waitFor, destroy ) = runForkedHandles + waitFor() + } + + protected def runForkedHandles = runForked( mainClassOrFail.getName, context.args ) + + def runForked( className: String, args: Seq[String] ): ( Int, () => ExitCode, () => ExitCode ) = + lib.runMainForked( + className, + args, + classpath.string, + Some( context.workingDirectory ), + NailgunLauncher.runningViaNailgun.option( + lib.getOutErrIn match { case (l,r, in) => (l.get,r.get, in) } + ) + ) + + override def runMain( className: String, args: Seq[String] ): ExitCode = { + if(fork){ + runForked(className, args)._2() + } else { + super.runMain( className, args ) + } + } } -- cgit v1.2.3