diff options
author | Li Haoyi <haoyi.sg@gmail.com> | 2018-01-05 21:59:02 -0800 |
---|---|---|
committer | Li Haoyi <haoyi.sg@gmail.com> | 2018-01-05 22:03:35 -0800 |
commit | dd16d55e95e5cc21c102fe49b4cf0e727261fedf (patch) | |
tree | 4c1209eb07adc094dd682aa05db5e5e57d0cb925 /core/src/main/scala/mill/main/MainRunner.scala | |
parent | c5271eeb2492136a2dd70e4bdad948fb4976e580 (diff) | |
download | mill-dd16d55e95e5cc21c102fe49b4cf0e727261fedf.tar.gz mill-dd16d55e95e5cc21c102fe49b4cf0e727261fedf.tar.bz2 mill-dd16d55e95e5cc21c102fe49b4cf0e727261fedf.zip |
Forward bulk output to `stderr` when `--show` is called, reserving `stdout` for the shown JSON blob
Diffstat (limited to 'core/src/main/scala/mill/main/MainRunner.scala')
-rw-r--r-- | core/src/main/scala/mill/main/MainRunner.scala | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/core/src/main/scala/mill/main/MainRunner.scala b/core/src/main/scala/mill/main/MainRunner.scala index 4a6be436..76e2d069 100644 --- a/core/src/main/scala/mill/main/MainRunner.scala +++ b/core/src/main/scala/mill/main/MainRunner.scala @@ -7,6 +7,7 @@ import ammonite.ops.Path import ammonite.util._ import mill.discover.Discovered import mill.eval.{Evaluator, PathRef} +import mill.util.PrintLogger import upickle.Js /** @@ -14,13 +15,15 @@ import upickle.Js * `build.sc` scripts with mill-specific tweaks such as a custom * `scriptCodeWrapper` or with a persistent evaluator between runs. */ -class MainRunner(config: ammonite.main.Cli.Config, show: Boolean, +class MainRunner(config: ammonite.main.Cli.Config, + show: Boolean, outprintStream: PrintStream, errPrintStream: PrintStream, - stdIn: InputStream, - stdOut: OutputStream, - stdErr: OutputStream) - extends ammonite.MainRunner(config, outprintStream, errPrintStream, stdIn, stdOut, stdErr){ + stdIn: InputStream) + extends ammonite.MainRunner( + config, outprintStream, errPrintStream, + stdIn, outprintStream, errPrintStream + ){ var lastEvaluator: Option[(Seq[(Path, Long)], Evaluator[_])] = None override def runScript(scriptPath: Path, scriptArgs: List[String]) = @@ -29,8 +32,18 @@ class MainRunner(config: ammonite.main.Cli.Config, show: Boolean, printing = true, mainCfg => { val (result, interpWatched) = RunScript.runScript( - mainCfg.wd, scriptPath, mainCfg.instantiateInterpreter(), scriptArgs, lastEvaluator, - errPrintStream, errPrintStream, colors + mainCfg.wd, + scriptPath, + mainCfg.instantiateInterpreter(), + scriptArgs, + lastEvaluator, + new PrintLogger( + colors != ammonite.util.Colors.BlackWhite, + colors, + if (show) errPrintStream else outprintStream, + errPrintStream, + errPrintStream + ) ) result match{ @@ -50,7 +63,7 @@ class MainRunner(config: ammonite.main.Cli.Config, show: Boolean, case Res.Success(value) => if (show){ for(json <- value.asInstanceOf[Seq[Js.Value]]){ - System.out.println(json) + outprintStream.println(json) } } |