summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Sviridov <keynmol@gmail.com>2018-07-14 02:21:27 +0100
committerLi Haoyi <haoyi.sg@gmail.com>2018-07-14 09:21:27 +0800
commit2d779b8ccd0a2f29a7d14dc193b4ad093142b521 (patch)
tree5752f56c69bf8a873671830afab47349c55b6119
parent5616dc9b46e033b39d0df12e42173ee1c875cee4 (diff)
downloadmill-2d779b8ccd0a2f29a7d14dc193b4ad093142b521.tar.gz
mill-2d779b8ccd0a2f29a7d14dc193b4ad093142b521.tar.bz2
mill-2d779b8ccd0a2f29a7d14dc193b4ad093142b521.zip
add --disable-ticker, handle --color correctly (#379)
-rw-r--r--core/src/mill/util/Logger.scala37
-rw-r--r--main/src/mill/MillMain.scala23
-rw-r--r--main/src/mill/main/MainModule.scala2
-rw-r--r--main/src/mill/main/MainRunner.scala2
-rw-r--r--main/src/mill/main/ReplApplyHandler.scala2
-rw-r--r--main/test/src/mill/util/ScriptTestSuite.scala3
-rw-r--r--main/test/src/mill/util/TestEvaluator.scala2
-rw-r--r--scalalib/src/mill/scalalib/TestRunner.scala1
-rw-r--r--scalalib/worker/src/mill/scalalib/worker/ScalaWorker.scala2
9 files changed, 49 insertions, 25 deletions
diff --git a/core/src/mill/util/Logger.scala b/core/src/mill/util/Logger.scala
index ec8de132..37ae8577 100644
--- a/core/src/mill/util/Logger.scala
+++ b/core/src/mill/util/Logger.scala
@@ -79,6 +79,7 @@ object PrintState{
case object Middle extends PrintState
}
case class PrintLogger(colored: Boolean,
+ disableTicker: Boolean,
colors: ammonite.util.Colors,
outStream: PrintStream,
infoStream: PrintStream,
@@ -100,23 +101,25 @@ case class PrintLogger(colored: Boolean,
errStream.println(colors.error()(s))
}
def ticker(s: String) = {
- printState match{
- case PrintState.Newline =>
- infoStream.println(colors.info()(s))
- case PrintState.Middle =>
- infoStream.println()
- infoStream.println(colors.info()(s))
- case PrintState.Ticker =>
- val p = new PrintWriter(infoStream)
- val nav = new ammonite.terminal.AnsiNav(p)
- nav.up(1)
- nav.clearLine(2)
- nav.left(9999)
- p.flush()
-
- infoStream.println(colors.info()(s))
+ if(!disableTicker) {
+ printState match{
+ case PrintState.Newline =>
+ infoStream.println(colors.info()(s))
+ case PrintState.Middle =>
+ infoStream.println()
+ infoStream.println(colors.info()(s))
+ case PrintState.Ticker =>
+ val p = new PrintWriter(infoStream)
+ val nav = new ammonite.terminal.AnsiNav(p)
+ nav.up(1)
+ nav.clearLine(2)
+ nav.left(9999)
+ p.flush()
+
+ infoStream.println(colors.info()(s))
+ }
+ printState = PrintState.Ticker
}
- printState = PrintState.Ticker
}
}
@@ -199,4 +202,4 @@ case class MultiLogger(colored: Boolean, logger1: Logger, logger2: Logger) exten
logger1.close()
logger2.close()
}
-} \ No newline at end of file
+}
diff --git a/main/src/mill/MillMain.scala b/main/src/mill/MillMain.scala
index ad1bd39d..c3a771d3 100644
--- a/main/src/mill/MillMain.scala
+++ b/main/src/mill/MillMain.scala
@@ -38,6 +38,8 @@ object MillMain {
env: Map[String, String],
setIdle: Boolean => Unit): (Boolean, Option[Evaluator.State]) = {
import ammonite.main.Cli
+
+ val millHome = mill.util.Ctx.defaultHome
val removed = Set("predef-code", "no-home-predef")
var interactive = false
@@ -49,10 +51,21 @@ object MillMain {
c
}
)
- val millArgSignature =
- Cli.genericSignature.filter(a => !removed(a.name)) :+ interactiveSignature
- val millHome = mill.util.Ctx.defaultHome
+
+
+ var disableTicker = false
+ val disableTickerSignature = Arg[Config, Unit](
+ "disable-ticker", None,
+ "Disable ticker log (e.g. short-lived prints of stages and progress bars)",
+ (c, v) =>{
+ disableTicker = true
+ c
+ }
+ )
+
+ val millArgSignature =
+ Cli.genericSignature.filter(a => !removed(a.name)) ++ Seq(interactiveSignature, disableTickerSignature)
Cli.groupArgs(
args.toList,
@@ -89,6 +102,7 @@ object MillMain {
s"""import $$file.build, build._
|implicit val replApplyHandler = mill.main.ReplApplyHandler(
| ammonite.ops.Path($tqs${cliConfig.home.toIO.getCanonicalPath.replaceAllLiterally("$", "$$")}$tqs),
+ | $disableTicker,
| interp.colors(),
| repl.pprinter(),
| build.millSelf.get,
@@ -102,7 +116,8 @@ object MillMain {
)
val runner = new mill.main.MainRunner(
- config.copy(colored = Some(mainInteractive)),
+ config.copy(colored = config.colored orElse Option(mainInteractive)),
+ disableTicker,
stdout, stderr, stdin,
stateCache,
env,
diff --git a/main/src/mill/main/MainModule.scala b/main/src/mill/main/MainModule.scala
index 367f241c..f7d4e7b9 100644
--- a/main/src/mill/main/MainModule.scala
+++ b/main/src/mill/main/MainModule.scala
@@ -173,7 +173,7 @@ trait MainModule extends mill.Module{
// When using `show`, redirect all stdout of the evaluated tasks so the
// printed JSON is the only thing printed to stdout.
log = evaluator.log match{
- case PrintLogger(c1, c2, o, i, e, in) => PrintLogger(c1, c2, e, i, e, in)
+ case PrintLogger(c1, d, c2, o, i, e, in) => PrintLogger(c1, d, c2, e, i, e, in)
case l => l
}
),
diff --git a/main/src/mill/main/MainRunner.scala b/main/src/mill/main/MainRunner.scala
index bf0d5901..30a23632 100644
--- a/main/src/mill/main/MainRunner.scala
+++ b/main/src/mill/main/MainRunner.scala
@@ -18,6 +18,7 @@ import scala.annotation.tailrec
* `scriptCodeWrapper` or with a persistent evaluator between runs.
*/
class MainRunner(val config: ammonite.main.Cli.Config,
+ disableTicker: Boolean,
outprintStream: PrintStream,
errPrintStream: PrintStream,
stdIn: InputStream,
@@ -74,6 +75,7 @@ class MainRunner(val config: ammonite.main.Cli.Config,
stateCache,
new PrintLogger(
colors != ammonite.util.Colors.BlackWhite,
+ disableTicker,
colors,
outprintStream,
errPrintStream,
diff --git a/main/src/mill/main/ReplApplyHandler.scala b/main/src/mill/main/ReplApplyHandler.scala
index 22a247cc..95949fa8 100644
--- a/main/src/mill/main/ReplApplyHandler.scala
+++ b/main/src/mill/main/ReplApplyHandler.scala
@@ -11,6 +11,7 @@ import mill.util.Strict.Agg
import scala.collection.mutable
object ReplApplyHandler{
def apply[T](home: Path,
+ disableTicker: Boolean,
colors: ammonite.util.Colors,
pprinter0: pprint.PPrinter,
rootModule: mill.define.BaseModule,
@@ -24,6 +25,7 @@ object ReplApplyHandler{
rootModule,
new mill.util.PrintLogger(
colors != ammonite.util.Colors.BlackWhite,
+ disableTicker,
colors,
System.out,
System.err,
diff --git a/main/test/src/mill/util/ScriptTestSuite.scala b/main/test/src/mill/util/ScriptTestSuite.scala
index a23b34fe..0b0c4011 100644
--- a/main/test/src/mill/util/ScriptTestSuite.scala
+++ b/main/test/src/mill/util/ScriptTestSuite.scala
@@ -14,8 +14,9 @@ abstract class ScriptTestSuite(fork: Boolean) extends TestSuite{
val wd = workspacePath / buildPath / up
val stdOutErr = new PrintStream(new ByteArrayOutputStream())
val stdIn = new ByteArrayInputStream(Array())
+ val disableTicker = false
lazy val runner = new mill.main.MainRunner(
- ammonite.main.Cli.Config(wd = wd),
+ ammonite.main.Cli.Config(wd = wd), disableTicker,
stdOutErr, stdOutErr, stdIn, None, Map.empty,
b => ()
)
diff --git a/main/test/src/mill/util/TestEvaluator.scala b/main/test/src/mill/util/TestEvaluator.scala
index bcfcc9bf..d62e921c 100644
--- a/main/test/src/mill/util/TestEvaluator.scala
+++ b/main/test/src/mill/util/TestEvaluator.scala
@@ -26,7 +26,7 @@ class TestEvaluator[T <: TestUtil.BaseModule](module: T)
// val logger = DummyLogger
val logger = new PrintLogger(
- true,
+ colored = true, disableTicker=false,
ammonite.util.Colors.Default, System.out, System.out, System.err, System.in
)
val evaluator = new Evaluator(Ctx.defaultHome, outPath, TestEvaluator.externalOutPath, module, logger)
diff --git a/scalalib/src/mill/scalalib/TestRunner.scala b/scalalib/src/mill/scalalib/TestRunner.scala
index a014df0c..0e4506a3 100644
--- a/scalalib/src/mill/scalalib/TestRunner.scala
+++ b/scalalib/src/mill/scalalib/TestRunner.scala
@@ -31,6 +31,7 @@ object TestRunner {
val ctx = new Ctx.Log with Ctx.Home {
val log = PrintLogger(
colored == "true",
+ true,
if(colored == "true") Colors.Default
else Colors.BlackWhite,
System.out,
diff --git a/scalalib/worker/src/mill/scalalib/worker/ScalaWorker.scala b/scalalib/worker/src/mill/scalalib/worker/ScalaWorker.scala
index 9b14757c..2f3ca1b9 100644
--- a/scalalib/worker/src/mill/scalalib/worker/ScalaWorker.scala
+++ b/scalalib/worker/src/mill/scalalib/worker/ScalaWorker.scala
@@ -35,7 +35,7 @@ class ScalaWorker(ctx0: mill.util.Ctx,
val compiledDest = workingDir / 'compiled
if (!exists(workingDir)) {
- println("Compiling compiler interface...")
+ ctx0.log.info("Compiling compiler interface...")
mkdir(workingDir)
mkdir(compiledDest)