summaryrefslogtreecommitdiff
path: root/core/src/main
diff options
context:
space:
mode:
authorLi Haoyi <haoyi.sg@gmail.com>2017-12-04 22:28:31 -0800
committerLi Haoyi <haoyi.sg@gmail.com>2017-12-04 22:28:31 -0800
commit9aed4601a04a48b3192d1871ff0ebb98fa352726 (patch)
tree2d5c01a5fc935a177da4087550d140e54d3ac14d /core/src/main
parent52f5a07a2b2b3f1885e83d09414aa3da385f4419 (diff)
downloadmill-9aed4601a04a48b3192d1871ff0ebb98fa352726.tar.gz
mill-9aed4601a04a48b3192d1871ff0ebb98fa352726.tar.bz2
mill-9aed4601a04a48b3192d1871ff0ebb98fa352726.zip
Standardize on a `mill.util.Logger` class
Diffstat (limited to 'core/src/main')
-rw-r--r--core/src/main/scala/mill/Main.scala15
-rw-r--r--core/src/main/scala/mill/eval/Evaluator.scala14
-rw-r--r--core/src/main/scala/mill/modules/Jvm.scala8
-rw-r--r--core/src/main/scala/mill/util/Ctx.scala4
-rw-r--r--core/src/main/scala/mill/util/Logger.scala29
5 files changed, 43 insertions, 27 deletions
diff --git a/core/src/main/scala/mill/Main.scala b/core/src/main/scala/mill/Main.scala
index db7a6c1a..24cd7ed1 100644
--- a/core/src/main/scala/mill/Main.scala
+++ b/core/src/main/scala/mill/Main.scala
@@ -7,7 +7,7 @@ import ammonite.util.{Colors, Res}
import mill.define.Task
import mill.discover._
import mill.eval.{Evaluator, Result}
-import mill.util.OSet
+import mill.util.{Logger, OSet, PrintLogger}
import ammonite.main.Scripts.pathScoptRead
import ammonite.repl.Repl
import mill.define.Task.TaskModule
@@ -151,7 +151,7 @@ object Main {
watch: Path => Unit,
coloredOutput: Boolean): Int = {
- val log = new Logger(coloredOutput)
+ val log = new PrintLogger(coloredOutput)
val Seq(selectorString, rest @_*) = args
@@ -163,7 +163,7 @@ object Main {
case _ => Nil
}
target <- resolve(sel, disc.mirror, obj, rest, crossSelectors, Nil)
- evaluator = new Evaluator(pwd / 'out, Discovered.mapping(obj)(disc), log.info)
+ evaluator = new Evaluator(pwd / 'out, Discovered.mapping(obj)(disc), log)
_ <- evaluate(evaluator, target, watch).toLeft(())
} yield ()
@@ -231,17 +231,10 @@ object Main {
}
}
-class Logger(coloredOutput: Boolean){
- val colors =
- if(coloredOutput) Colors.Default
- else Colors.BlackWhite
- def info(s: String) = System.err.println(colors.info()(s))
- def error(s: String) = System.err.println(colors.error()(s))
-}
class Main(config: Main.Config){
val coloredOutput = config.colored.getOrElse(ammonite.Main.isInteractive())
- val log = new Logger(coloredOutput)
+ val log = new PrintLogger(coloredOutput)
def watchAndWait(watched: Seq[(Path, Long)]) = {
diff --git a/core/src/main/scala/mill/eval/Evaluator.scala b/core/src/main/scala/mill/eval/Evaluator.scala
index b769c025..619b1521 100644
--- a/core/src/main/scala/mill/eval/Evaluator.scala
+++ b/core/src/main/scala/mill/eval/Evaluator.scala
@@ -1,17 +1,20 @@
package mill.eval
+import java.io.PrintStream
+
import ammonite.ops._
import ammonite.runtime.SpecialClassLoader
import mill.define.{Graph, Target, Task}
import mill.discover.Mirror
import mill.discover.Mirror.LabelledTarget
import mill.util
-import mill.util.{Ctx, MultiBiMap, OSet}
+import mill.util._
+
import scala.collection.mutable
class Evaluator(workspacePath: Path,
labeling: Map[Target[_], LabelledTarget[_]],
- log: String => Unit){
+ log: Logger){
def evaluate(goals: OSet[Task[_]]): Evaluator.Results = {
mkdir(workspacePath)
@@ -133,8 +136,7 @@ class Evaluator(workspacePath: Path,
def evaluateGroup(group: OSet[Task[_]],
results: collection.Map[Task[_], Result[Any]],
targetDestPath: Option[Path],
- maybeTargetLabel: Option[String]
- ) = {
+ maybeTargetLabel: Option[String]) = {
val newEvaluated = mutable.Buffer.empty[Task[_]]
@@ -150,7 +152,7 @@ class Evaluator(workspacePath: Path,
val logRun = inputResults.forall(_.isInstanceOf[Result.Success[_]])
- if(logRun) { log("Running " + targetLabel) }
+ if(logRun) { log.info("Running " + targetLabel) }
}
for (target <- nonEvaluatedTargets) {
@@ -166,7 +168,7 @@ class Evaluator(workspacePath: Path,
val args = new Ctx(
targetInputValues.toArray[Any],
targetDestPath.orNull,
- System.out
+ log
)
target.evaluate(args)
}
diff --git a/core/src/main/scala/mill/modules/Jvm.scala b/core/src/main/scala/mill/modules/Jvm.scala
index a2277e36..a0f586c3 100644
--- a/core/src/main/scala/mill/modules/Jvm.scala
+++ b/core/src/main/scala/mill/modules/Jvm.scala
@@ -130,12 +130,4 @@ object Jvm {
PathRef(outputPath)
}
- def jarUp(roots: Task[PathRef]*) = new Task[PathRef]{
-
- val inputs = roots
- def evaluate(args: Ctx) = {
- createJar(args.dest, args.args.map(_.asInstanceOf[PathRef].path))
- PathRef(args.dest)
- }
- }
}
diff --git a/core/src/main/scala/mill/util/Ctx.scala b/core/src/main/scala/mill/util/Ctx.scala
index f583feaf..7a0a5694 100644
--- a/core/src/main/scala/mill/util/Ctx.scala
+++ b/core/src/main/scala/mill/util/Ctx.scala
@@ -17,7 +17,7 @@ object Ctx{
def dest: Path
}
trait LogCtx{
- def log: PrintStream
+ def log: Logger
}
trait ArgCtx{
def args: IndexedSeq[_]
@@ -25,7 +25,7 @@ object Ctx{
}
class Ctx(val args: IndexedSeq[_],
val dest: Path,
- val log: PrintStream) extends DestCtx with LogCtx with ArgCtx{
+ val log: Logger) extends DestCtx with LogCtx with ArgCtx{
def length = args.length
def apply[T](index: Int): T = {
if (index >= 0 && index < args.length) args(index).asInstanceOf[T]
diff --git a/core/src/main/scala/mill/util/Logger.scala b/core/src/main/scala/mill/util/Logger.scala
new file mode 100644
index 00000000..d998a601
--- /dev/null
+++ b/core/src/main/scala/mill/util/Logger.scala
@@ -0,0 +1,29 @@
+package mill.util
+
+import java.io.{OutputStream, PrintStream}
+
+import ammonite.util.Colors
+
+
+trait Logger{
+ val outputStream: PrintStream
+ def info(s: String): Unit
+ def error(s: String): Unit
+}
+
+object DummyLogger extends Logger{
+ val outputStream = new PrintStream(new OutputStream {
+ def write(b: Int) = ()
+ })
+ def info(s: String) = ()
+ def error(s: String) = ()
+}
+class PrintLogger(coloredOutput: Boolean) extends Logger{
+ val outputStream = System.err
+ val colors =
+ if(coloredOutput) Colors.Default
+ else Colors.BlackWhite
+
+ def info(s: String) = System.err.println(colors.info()(s))
+ def error(s: String) = System.err.println(colors.error()(s))
+} \ No newline at end of file