diff options
Diffstat (limited to 'main/src/mill/main/MainModule.scala')
-rw-r--r-- | main/src/mill/main/MainModule.scala | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/main/src/mill/main/MainModule.scala b/main/src/mill/main/MainModule.scala new file mode 100644 index 00000000..012ecce5 --- /dev/null +++ b/main/src/mill/main/MainModule.scala @@ -0,0 +1,56 @@ +package mill.main + +import mill.util +import mill.main.RunScript +import mill.util.Watched +import pprint.{Renderer, Truncated} + +trait MainModule extends mill.Module{ + + implicit def millDiscover: mill.define.Discover[_] + implicit def millScoptTargetReads[T] = new mill.main.TargetScopt[T]() + implicit def millScoptEvaluatorReads[T] = new mill.main.EvaluatorScopt[T]() + mill.define.Ctx.make + def resolve(targets: mill.main.MagicScopt.Tasks[Any]*) = mill.T.command{ + targets.flatMap(_.value).foreach(println) + } + def describe(evaluator: mill.eval.Evaluator[Any], + targets: mill.main.MagicScopt.Tasks[Any]*) = mill.T.command{ + for{ + t <- targets + target <- t.value + tree = ReplApplyHandler.pprintTask(target, evaluator) + val defaults = pprint.PPrinter() + val renderer = new Renderer( + defaults.defaultWidth, + defaults.colorApplyPrefix, + defaults.colorLiteral, + defaults.defaultIndent + ) + val rendered = renderer.rec(tree, 0, 0).iter + val truncated = new Truncated(rendered, defaults.defaultWidth, defaults.defaultHeight) + str <- truncated ++ Iterator("\n") + } { + print(str) + } + } + def all(evaluator: mill.eval.Evaluator[Any], + targets: mill.main.MagicScopt.Tasks[Any]*) = mill.T.command{ + val (watched, res) = RunScript.evaluate( + evaluator, + mill.util.Strict.Agg.from(targets.flatMap(_.value)) + ) + Watched((), watched) + } + def show(evaluator: mill.eval.Evaluator[Any], + targets: mill.main.MagicScopt.Tasks[Any]*) = mill.T.command{ + val (watched, res) = mill.main.RunScript.evaluate( + evaluator, + mill.util.Strict.Agg.from(targets.flatMap(_.value)) + ) + for(json <- res.right.get.flatMap(_._2)){ + println(json) + } + Watched((), watched) + } +} |