Skip to content

Commit

Permalink
Add --quiet flag to MainModule resolve
Browse files Browse the repository at this point in the history
  • Loading branch information
lefou committed Jun 27, 2023
1 parent ee6ece7 commit 7ae829a
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 7 deletions.
25 changes: 19 additions & 6 deletions main/src/mill/main/MainModule.scala
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
package mill.main

import mainargs.Flag

import java.util.concurrent.LinkedBlockingQueue
import mill.define.Target
import mill.define.{Args, Command, NamedTask, Segments, Target, Task}
import mill.main.BuildInfo
import mill.api.{Ctx, Logger, PathRef, Result}
import mill.define.{Command, NamedTask, Segments, Task}
import mill.eval.{Evaluator, EvaluatorPaths, Terminal}
import mill.resolve.{Resolve, SelectMode}
import mill.resolve.SelectMode.Separated
Expand Down Expand Up @@ -105,21 +106,33 @@ trait MainModule extends mill.define.Module {
res
}

@deprecated("Binary compatibility shim. Use other overload instead.", "Mill 0.11.2")
private[main] def resolve(evaluator: Evaluator, targets: String*): Command[List[String]] =
resolve(evaluator, Flag(false), Args(targets))

/**
* Resolves a mill query string and prints out the tasks it resolves to.
* @param quiet If true, do not print the resolved tasks
* @param targets The target patterns to resolve
*/
def resolve(evaluator: Evaluator, targets: String*): Command[List[String]] = Target.command {
def resolve(
evaluator: Evaluator,
quiet: Flag = Flag(false),
targets: Args = Args()
): Command[List[String]] = Target.command {
val resolved = Resolve.Segments.resolve(
evaluator.rootModule,
targets,
targets.value,
SelectMode.Multi
)

resolved match {
case Left(err) => Result.Failure(err)
case Right(resolvedSegmentsList) =>
val resolvedStrings = resolvedSegmentsList.map(_.render)
resolvedStrings.sorted.foreach(Target.log.outputStream.println)
val resolvedStrings = resolvedSegmentsList.map(_.render).sorted
if (!quiet.value) {
Target.log.outputStream.println(resolvedStrings.mkString("\n"))
}
Result.Success(resolvedStrings)
}
}
Expand Down
2 changes: 1 addition & 1 deletion runner/src/mill/runner/RootModuleFinder.scala
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ object RootModuleFinder {
imports = Nil,
env = Map.empty,
threadCount = None,
targetsAndParams = Seq("resolve", "_"),
targetsAndParams = Seq("resolve", "--quiet", "_"),
prevRunnerState = mill.runner.RunnerState.empty,
logger = logger
).evaluate()
Expand Down

0 comments on commit 7ae829a

Please sign in to comment.