blob: fe8c13b62e68a9a490672c24bd1e470bd474edef (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
package mill.main
import ammonite.ops.pwd
import mill.Main.discoverMirror
import mill.define.Applicative.ApplyHandler
import mill.define.Task
import mill.discover.Discovered
import mill.eval.Evaluator
import mill.util.{OSet, PrintLogger}
class ReplApplyHandler[T: Discovered](obj: T) extends ApplyHandler[Task] {
override def apply[V](t: Task[V]) = discoverMirror(obj) match{
case Left(err) =>
throw new Exception("Failed discovery consistency check: " + err)
case Right(mirror) =>
val log = new PrintLogger(true)
val evaluator = new Evaluator(pwd / 'out, Discovered.mapping(obj)(mirror), log)
evaluator.evaluate(OSet(t)).values.head.asInstanceOf[V]
}
}
|