summaryrefslogtreecommitdiff
path: root/main/src/main/ReplApplyHandler.scala
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/main/ReplApplyHandler.scala')
-rw-r--r--main/src/main/ReplApplyHandler.scala20
1 files changed, 14 insertions, 6 deletions
diff --git a/main/src/main/ReplApplyHandler.scala b/main/src/main/ReplApplyHandler.scala
index 6f1e060d..7f959929 100644
--- a/main/src/main/ReplApplyHandler.scala
+++ b/main/src/main/ReplApplyHandler.scala
@@ -1,14 +1,13 @@
package mill.main
+import scala.collection.mutable
+import mill.api.Strict.Agg
import mill.define.Applicative.ApplyHandler
import mill.define.Segment.Label
import mill.define._
import mill.eval.{Evaluator, Result}
-import mill.api.Strict.Agg
-
-import scala.collection.mutable
object ReplApplyHandler{
def apply[T](home: os.Path,
disableTicker: Boolean,
@@ -17,7 +16,8 @@ object ReplApplyHandler{
rootModule: mill.define.BaseModule,
discover: Discover[_],
debugLog: Boolean,
- keepGoing: Boolean) = {
+ keepGoing: Boolean,
+ systemProperties: Map[String, String]): ReplApplyHandler = {
new ReplApplyHandler(
pprinter0,
new Evaluator(
@@ -36,7 +36,8 @@ object ReplApplyHandler{
debugEnabled = debugLog
),
failFast = !keepGoing
- )
+ ),
+ systemProperties
)
}
def pprintCross(c: mill.define.Cross[_], evaluator: Evaluator) = {
@@ -113,8 +114,15 @@ object ReplApplyHandler{
}
}
+
class ReplApplyHandler(pprinter0: pprint.PPrinter,
- val evaluator: Evaluator) extends ApplyHandler[Task] {
+ val evaluator: Evaluator,
+ systemProperties: Map[String, String]) extends ApplyHandler[Task] {
+
+ systemProperties.foreach {case (k,v) =>
+ System.setProperty(k,v)
+ }
+
// Evaluate classLoaderSig only once in the REPL to avoid busting caches
// as the user enters more REPL commands and changes the classpath
val classLoaderSig = Evaluator.classLoaderSig