summaryrefslogtreecommitdiff
path: root/core/src/main/scala/mill/main/MainRunner.scala
diff options
context:
space:
mode:
authorLi Haoyi <haoyi.sg@gmail.com>2018-01-05 21:59:02 -0800
committerLi Haoyi <haoyi.sg@gmail.com>2018-01-05 22:03:35 -0800
commitdd16d55e95e5cc21c102fe49b4cf0e727261fedf (patch)
tree4c1209eb07adc094dd682aa05db5e5e57d0cb925 /core/src/main/scala/mill/main/MainRunner.scala
parentc5271eeb2492136a2dd70e4bdad948fb4976e580 (diff)
downloadmill-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.scala29
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)
}
}