diff options
author | Li Haoyi <haoyi.sg@gmail.com> | 2018-02-17 19:39:07 -0800 |
---|---|---|
committer | Li Haoyi <haoyi.sg@gmail.com> | 2018-02-17 19:39:07 -0800 |
commit | 675d4f9eb1f234860ebd04d9f6e118c287d98eda (patch) | |
tree | 180c04f272fa6289e051e98c3af793b7f72eafa7 /main | |
parent | 9e156cd3bf53670b6283be5be3a0df6d332ae8ab (diff) | |
download | mill-675d4f9eb1f234860ebd04d9f6e118c287d98eda.tar.gz mill-675d4f9eb1f234860ebd04d9f6e118c287d98eda.tar.bz2 mill-675d4f9eb1f234860ebd04d9f6e118c287d98eda.zip |
Avoid printing top-level tasks twice in `mill resolve __`
Diffstat (limited to 'main')
-rw-r--r-- | main/src/mill/main/MainModule.scala | 7 | ||||
-rw-r--r-- | main/src/mill/main/Resolve.scala | 13 |
2 files changed, 16 insertions, 4 deletions
diff --git a/main/src/mill/main/MainModule.scala b/main/src/mill/main/MainModule.scala index b1068c29..ea4b2cb2 100644 --- a/main/src/mill/main/MainModule.scala +++ b/main/src/mill/main/MainModule.scala @@ -35,9 +35,14 @@ trait MainModule extends mill.Module{ val resolved = RunScript.resolveTasks( mill.main.ResolveMetadata, evaluator, targets, multiSelect = true ) + resolved match{ case Left(err) => Result.Failure(err) - case Right(r) => Result.Success(r.foreach(println)) + case Right(rs) => + for(r <- rs){ + println(r) + } + Result.Success(()) } } diff --git a/main/src/mill/main/Resolve.scala b/main/src/mill/main/Resolve.scala index 95fff5f1..992484bc 100644 --- a/main/src/mill/main/Resolve.scala +++ b/main/src/mill/main/Resolve.scala @@ -24,7 +24,6 @@ object ResolveMetadata extends Resolve[String]{ if (isRootModule) ep._2.name else obj + "." + ep._2.name } - modules ++ targets ++ commands } def endResolve(obj: Module, @@ -35,8 +34,15 @@ object ResolveMetadata extends Resolve[String]{ val direct = singleModuleMeta(obj, discover, revSelectorsSoFar.isEmpty) if (last == "__") { - Right(direct.toList ++ obj.millInternal.modules.flatMap(singleModuleMeta(_, discover, false))) - } else if (last == "_") Right(direct.toList) + Right( + // Filter out our own module in + obj.millInternal.modules + .filter(_ != obj) + .flatMap(m => singleModuleMeta(m, discover, m != obj)) + .toList + ) + } + else if (last == "_") Right(direct.toList) else direct.find(_.split('.').last == last) match{ case None => Left( @@ -47,6 +53,7 @@ object ResolveMetadata extends Resolve[String]{ } } } + object Resolve extends Resolve[NamedTask[Any]]{ def endResolve(obj: Module, revSelectorsSoFar: List[Segment], |