summaryrefslogtreecommitdiff
path: root/main
diff options
context:
space:
mode:
authorJoseph K. Strauss <joseph.k.strauss@gmail.com>2018-08-10 01:06:20 -0400
committerLi Haoyi <haoyi.sg@gmail.com>2018-08-10 13:06:20 +0800
commit21594a8fcc0937a966a0a6857d2fe3f764e69ce9 (patch)
treed732049cde61320c188da63f74052913888404a7 /main
parent87dfb308db0a83a3443fe71127716411474b0b69 (diff)
downloadmill-21594a8fcc0937a966a0a6857d2fe3f764e69ce9.tar.gz
mill-21594a8fcc0937a966a0a6857d2fe3f764e69ce9.tar.bz2
mill-21594a8fcc0937a966a0a6857d2fe3f764e69ce9.zip
Make visualizePlan work with external modules (#406)
Diffstat (limited to 'main')
-rw-r--r--main/src/mill/main/MainModule.scala43
1 files changed, 16 insertions, 27 deletions
diff --git a/main/src/mill/main/MainModule.scala b/main/src/mill/main/MainModule.scala
index fbf89a6d..67e8fa21 100644
--- a/main/src/mill/main/MainModule.scala
+++ b/main/src/mill/main/MainModule.scala
@@ -67,27 +67,22 @@ trait MainModule extends mill.Module{
def plan(evaluator: Evaluator[Any], targets: String*) = mill.T.command{
plan0(evaluator, targets) match{
case Right(success) => {
- success.foreach(println)
- Result.Success(success)
+ val renderedTasks = success.map{ _.segments.render}
+ renderedTasks.foreach(println)
+ Result.Success(renderedTasks)
}
case Left(err) => Result.Failure(err)
}
}
private def plan0(evaluator: Evaluator[Any], targets: Seq[String]) = {
- val resolved = RunScript.resolveTasks(
+ RunScript.resolveTasks(
mill.main.ResolveTasks, evaluator, targets, multiSelect = true
- )
-
- resolved match {
+ ) match {
case Left(err) => Left(err)
case Right(rs) =>
- val (sortedGroups, transitive) = Evaluator.plan(evaluator.rootModule, rs)
- Right(sortedGroups
- .keys()
- .collect{ case Right(r) => r.segments.render}
- .toArray
- )
+ val (sortedGroups, _) = Evaluator.plan(evaluator.rootModule, rs)
+ Right(sortedGroups.keys().collect{ case Right(r) => r}.toArray)
}
}
@@ -233,9 +228,10 @@ trait MainModule extends mill.Module{
def visualizePlan(evaluator: Evaluator[Any], targets: String*) = mill.T.command{
plan0(evaluator, targets) match {
- case Right(planResults) =>
- visualize0(evaluator, targets, T.ctx(), mill.main.VisualizeModule.worker(), Some(planResults))
case Left(err) => Result.Failure(err)
+ case Right(planResults) => visualize0(
+ evaluator, targets, T.ctx(), mill.main.VisualizeModule.worker(), Some(planResults.toList.map(_.task))
+ )
}
}
@@ -243,27 +239,20 @@ trait MainModule extends mill.Module{
LinkedBlockingQueue[Result[scala.Seq[PathRef]]])
private def visualize0(evaluator: Evaluator[Any], targets: Seq[String], ctx: Ctx, vizWorker: VizWorker,
- planTasks: Option[Array[String]] = None) = {
- def resolveTasks(targets: Seq[String]): Either[String, List[NamedTask[Any]]] = {
- RunScript.resolveTasks(
- mill.main.ResolveTasks, evaluator, targets, multiSelect = true
- )
- }
-
+ planTasks: Option[List[NamedTask[_]]] = None) = {
def callVisualizeModule(rs: List[NamedTask[Any]], allRs: List[NamedTask[Any]]) = {
val (in, out) = vizWorker
in.put((rs, allRs, ctx.dest))
out.take()
}
- val resolved = resolveTasks(targets)
-
- resolved match {
+ RunScript.resolveTasks(
+ mill.main.ResolveTasks, evaluator, targets, multiSelect = true
+ ) match {
case Left(err) => Result.Failure(err)
case Right(rs) => planTasks match {
- case Some(allTasks) => resolveTasks(allTasks) match {
- case Left (err) => Result.Failure (err)
- case Right (allRs) => callVisualizeModule (rs, allRs)
+ case Some(allRs) => {
+ callVisualizeModule(rs, allRs)
}
case None => callVisualizeModule(rs, rs)
}