summaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authorLi Haoyi <haoyi.sg@gmail.com>2018-04-08 08:54:45 -0700
committerLi Haoyi <haoyi.sg@gmail.com>2018-04-08 09:13:24 -0700
commitdbcad35c05f1726f26b8033524e8fdd3d68b2de9 (patch)
treeb5664e6b751e9f0c855e03b9fba737d3d6b50932 /core
parent4f51bd1ccc7cb68822a59ec07946242c1394e8c4 (diff)
parent997760eeddb75f163f7748c945d81a2f248db974 (diff)
downloadmill-dbcad35c05f1726f26b8033524e8fdd3d68b2de9.tar.gz
mill-dbcad35c05f1726f26b8033524e8fdd3d68b2de9.tar.bz2
mill-dbcad35c05f1726f26b8033524e8fdd3d68b2de9.zip
merge
Diffstat (limited to 'core')
-rw-r--r--core/src/mill/eval/Evaluator.scala10
-rw-r--r--core/src/mill/util/Ctx.scala9
2 files changed, 15 insertions, 4 deletions
diff --git a/core/src/mill/eval/Evaluator.scala b/core/src/mill/eval/Evaluator.scala
index a1bbf142..a728ec97 100644
--- a/core/src/mill/eval/Evaluator.scala
+++ b/core/src/mill/eval/Evaluator.scala
@@ -2,6 +2,8 @@ package mill.eval
import java.net.URLClassLoader
+import scala.collection.JavaConverters._
+
import mill.util.Router.EntryPoint
import ammonite.ops._
import ammonite.runtime.SpecialClassLoader
@@ -32,7 +34,8 @@ case class Evaluator[T](home: Path,
rootModule: mill.define.BaseModule,
log: Logger,
classLoaderSig: Seq[(Either[String, Path], Long)] = Evaluator.classLoaderSig,
- workerCache: mutable.Map[Segments, (Int, Any)] = mutable.Map.empty){
+ workerCache: mutable.Map[Segments, (Int, Any)] = mutable.Map.empty,
+ env : Map[String, String] = Evaluator.defaultEnv){
val classLoaderSignHash = classLoaderSig.hashCode()
def evaluate(goals: Agg[Task[_]]): Evaluator.Results = {
mkdir(outPath)
@@ -271,7 +274,8 @@ case class Evaluator[T](home: Path,
}
},
multiLogger,
- home
+ home,
+ env
)
val out = System.out
@@ -335,6 +339,8 @@ object Evaluator{
// in directly) we are forced to pass it in via a ThreadLocal
val currentEvaluator = new ThreadLocal[mill.eval.Evaluator[_]]
+ val defaultEnv: Map[String, String] = System.getenv().asScala.toMap
+
case class Paths(out: Path,
dest: Path,
meta: Path,
diff --git a/core/src/mill/util/Ctx.scala b/core/src/mill/util/Ctx.scala
index 99818194..6c8b2afb 100644
--- a/core/src/mill/util/Ctx.scala
+++ b/core/src/mill/util/Ctx.scala
@@ -23,6 +23,9 @@ object Ctx{
trait Home{
def home: Path
}
+ trait Env{
+ def env: Map[String, String]
+ }
object Log{
implicit def logToCtx(l: Logger): Log = new Log { def log = l }
}
@@ -36,11 +39,13 @@ object Ctx{
class Ctx(val args: IndexedSeq[_],
dest0: () => Path,
val log: Logger,
- val home: Path)
+ val home: Path,
+ val env : Map[String, String])
extends Ctx.Dest
with Ctx.Log
with Ctx.Args
- with Ctx.Home{
+ with Ctx.Home
+ with Ctx.Env {
def dest = dest0()
def length = args.length