diff options
author | Li Haoyi <haoyi.sg@gmail.com> | 2018-03-04 17:34:13 -0800 |
---|---|---|
committer | Li Haoyi <haoyi.sg@gmail.com> | 2018-03-04 17:56:48 -0800 |
commit | e0e537b937fc411188af2ae7ab417b6f4a9dabbe (patch) | |
tree | 703c840477359f296fc7329b16fda39bd183b21b /main | |
parent | c3e5d9313763cf31149b0a810a772790ac5bd9e2 (diff) | |
download | mill-e0e537b937fc411188af2ae7ab417b6f4a9dabbe.tar.gz mill-e0e537b937fc411188af2ae7ab417b6f4a9dabbe.tar.bz2 mill-e0e537b937fc411188af2ae7ab417b6f4a9dabbe.zip |
Introduced the `mill plan foo.bar` command, which shows you what the execution plan of running the `foo.bar` task looks like without actually evaluating it.
Diffstat (limited to 'main')
-rw-r--r-- | main/src/mill/main/MainModule.scala | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/main/src/mill/main/MainModule.scala b/main/src/mill/main/MainModule.scala index feafd35d..33eddbe4 100644 --- a/main/src/mill/main/MainModule.scala +++ b/main/src/mill/main/MainModule.scala @@ -46,6 +46,22 @@ trait MainModule extends mill.Module{ } } + def plan(evaluator: Evaluator[Any], targets: String*) = mill.T.command{ + val resolved = RunScript.resolveTasks( + mill.main.ResolveTasks, evaluator, targets, multiSelect = true + ) + + resolved match{ + case Left(err) => Result.Failure(err) + case Right(rs) => + val (sortedGroups, transitive) = Evaluator.plan(evaluator.rootModule, rs) + for(Right(r) <- sortedGroups.keys()){ + println(r.segments.render) + } + Result.Success(()) + } + } + def describe(evaluator: Evaluator[Any], targets: String*) = mill.T.command{ MainModule.resolveTasks(evaluator, targets, multiSelect = true){ tasks => for{ |