diff options
Diffstat (limited to 'scalaworker')
-rw-r--r-- | scalaworker/src/mill/scalaworker/ScalaWorker.scala | 32 |
1 files changed, 18 insertions, 14 deletions
diff --git a/scalaworker/src/mill/scalaworker/ScalaWorker.scala b/scalaworker/src/mill/scalaworker/ScalaWorker.scala index ca20ccf1..c74768a5 100644 --- a/scalaworker/src/mill/scalaworker/ScalaWorker.scala +++ b/scalaworker/src/mill/scalaworker/ScalaWorker.scala @@ -36,24 +36,28 @@ object ScalaWorker{ def main(args: Array[String]): Unit = { try{ - val (frameworks, classpath, testCp, arguments, outputPath, colored) = args match { - case Array(fs, cp, tcp, op, c) => (fs, cp, tcp, "", op, c) - case Array(fs, cp, tcp, as, op, c) => (fs, cp, tcp, as, op, c) + val (hm, frameworks, classpath, testCp, arguments, outputPath, colored) = args match { + case Array(h, fs, cp, tcp, op, c) => (h, fs, cp, tcp, "", op, c) + case Array(h, fs, cp, tcp, as, op, c) => (h, fs, cp, tcp, as, op, c) + } + val ctx = new Ctx.Log with Ctx.Home { + val log = PrintLogger( + colored == "true", + if(colored == "true") Colors.Default + else Colors.BlackWhite, + System.out, + System.err, + System.err, + System.in + ) + val home = Path(hm) } val result = new ScalaWorker(null, null).runTests( frameworkInstances = TestRunner.frameworks(frameworks.split(" ")), entireClasspath = Agg.from(classpath.split(" ").map(Path(_))), testClassfilePath = Agg.from(testCp.split(" ").map(Path(_))), args = arguments match{ case "" => Nil case x => x.split(" ").toList } - )(new PrintLogger( - colored == "true", - if(colored == "true") Colors.Default - else Colors.BlackWhite, - System.out, - System.err, - System.err, - System.in - )) + )(ctx) ammonite.ops.write(Path(outputPath), upickle.default.write(result)) }catch{case e: Throwable => @@ -89,7 +93,7 @@ class ScalaWorker(ctx0: mill.util.Ctx, .get val sourceFolder = mill.modules.Util.unpackZip(sourceJar)(workingDir) - val classloader = mill.util.ClassLoader.create(compilerJars.map(_.toURI.toURL), null) + val classloader = mill.util.ClassLoader.create(compilerJars.map(_.toURI.toURL), null)(ctx0) val scalacMain = classloader.loadClass("scala.tools.nsc.Main") val argsArray = Array[String]( "-d", compiledDest.toString, @@ -250,7 +254,7 @@ class ScalaWorker(ctx0: mill.util.Ctx, entireClasspath: Agg[Path], testClassfilePath: Agg[Path], args: Seq[String]) - (implicit ctx: mill.util.Ctx.Log): (String, Seq[Result]) = { + (implicit ctx: Ctx.Log with Ctx.Home): (String, Seq[Result]) = { Jvm.inprocess(entireClasspath, classLoaderOverrideSbtTesting = true, cl => { val frameworks = frameworkInstances(cl) |