From bd979b5ab9aa3bc479c7800f41393e53b24aae74 Mon Sep 17 00:00:00 2001 From: Li Haoyi Date: Mon, 1 Jan 2018 09:50:57 -0800 Subject: Pipe in stdin and stderr. We still need to figure out a policy for how stderr/stdout map to the various `Logger` levels, but for now this shuts up the integration tests --- core/src/main/scala/mill/main/MainRunner.scala | 3 ++- core/src/main/scala/mill/main/ReplApplyHandler.scala | 2 +- core/src/main/scala/mill/main/RunScript.scala | 7 +++++-- core/src/main/scala/mill/util/Logger.scala | 10 ++++++---- 4 files changed, 14 insertions(+), 8 deletions(-) (limited to 'core') diff --git a/core/src/main/scala/mill/main/MainRunner.scala b/core/src/main/scala/mill/main/MainRunner.scala index 93016453..895576bd 100644 --- a/core/src/main/scala/mill/main/MainRunner.scala +++ b/core/src/main/scala/mill/main/MainRunner.scala @@ -32,7 +32,8 @@ class MainRunner(config: ammonite.main.Cli.Config, show: Boolean, val interpWatched = interp.watchedFiles val result = RunScript.runScript( - mainCfg.wd, scriptPath, interp, scriptArgs, lastEvaluator + mainCfg.wd, scriptPath, interp, scriptArgs, lastEvaluator, + errPrintStream, errPrintStream ) result match{ case Res.Success(data) => diff --git a/core/src/main/scala/mill/main/ReplApplyHandler.scala b/core/src/main/scala/mill/main/ReplApplyHandler.scala index 93e7add4..7817a77f 100644 --- a/core/src/main/scala/mill/main/ReplApplyHandler.scala +++ b/core/src/main/scala/mill/main/ReplApplyHandler.scala @@ -13,7 +13,7 @@ object ReplApplyHandler{ ammonite.ops.pwd / 'out, ammonite.ops.pwd, mapping, - new mill.util.PrintLogger(true) + new mill.util.PrintLogger(true, System.err, System.err) ) ) } diff --git a/core/src/main/scala/mill/main/RunScript.scala b/core/src/main/scala/mill/main/RunScript.scala index 4fa7953b..ced0bbc1 100644 --- a/core/src/main/scala/mill/main/RunScript.scala +++ b/core/src/main/scala/mill/main/RunScript.scala @@ -1,5 +1,6 @@ package mill.main +import java.io.PrintStream import java.nio.file.NoSuchFileException import ammonite.interp.Interpreter @@ -24,9 +25,11 @@ object RunScript{ path: Path, interp: ammonite.interp.Interpreter, scriptArgs: Seq[String], - lastEvaluator: Option[(Seq[(Path, Long)], Evaluator[_])]) = { + lastEvaluator: Option[(Seq[(Path, Long)], Evaluator[_])], + infoStream: PrintStream, + errStream: PrintStream) = { - val log = new PrintLogger(true) + val log = new PrintLogger(true, infoStream, errStream) for{ evaluator <- lastEvaluator match{ case Some((prevInterpWatchedSig, prevEvaluator)) diff --git a/core/src/main/scala/mill/util/Logger.scala b/core/src/main/scala/mill/util/Logger.scala index d988c1fc..36c825a6 100644 --- a/core/src/main/scala/mill/util/Logger.scala +++ b/core/src/main/scala/mill/util/Logger.scala @@ -19,15 +19,17 @@ object DummyLogger extends Logger { def error(s: String) = () } -case class PrintLogger(coloredOutput: Boolean) extends Logger { - val outputStream: PrintStream = System.err +case class PrintLogger(coloredOutput: Boolean, + infoStream: PrintStream, + errorStream: PrintStream) extends Logger { + override val outputStream = infoStream val colors = if(coloredOutput) Colors.Default else Colors.BlackWhite - def info(s: String) = outputStream.println(colors.info()(s)) - def error(s: String) = outputStream.println(colors.error()(s)) + def info(s: String) = infoStream.println(colors.info()(s)) + def error(s: String) = errorStream.println(colors.error()(s)) } case class FileLogger(file: Path) extends Logger { -- cgit v1.2.3