summaryrefslogtreecommitdiff
path: root/main/src
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 /main/src
parent4f51bd1ccc7cb68822a59ec07946242c1394e8c4 (diff)
parent997760eeddb75f163f7748c945d81a2f248db974 (diff)
downloadmill-dbcad35c05f1726f26b8033524e8fdd3d68b2de9.tar.gz
mill-dbcad35c05f1726f26b8033524e8fdd3d68b2de9.tar.bz2
mill-dbcad35c05f1726f26b8033524e8fdd3d68b2de9.zip
merge
Diffstat (limited to 'main/src')
-rw-r--r--main/src/mill/Main.scala11
-rw-r--r--main/src/mill/main/MainRunner.scala6
-rw-r--r--main/src/mill/main/RunScript.scala6
-rw-r--r--main/src/mill/main/Server.scala15
4 files changed, 27 insertions, 11 deletions
diff --git a/main/src/mill/Main.scala b/main/src/mill/Main.scala
index 734d61e2..a349321e 100644
--- a/main/src/mill/Main.scala
+++ b/main/src/mill/Main.scala
@@ -2,6 +2,8 @@ package mill
import java.io.{InputStream, PrintStream}
+import scala.collection.JavaConverters._
+
import ammonite.main.Cli._
import ammonite.ops._
import ammonite.util.Util
@@ -24,7 +26,8 @@ object Main {
ammonite.Main.isInteractive(),
System.in,
System.out,
- System.err
+ System.err,
+ System.getenv().asScala.toMap
)
System.exit(if(result) 0 else 1)
}
@@ -34,7 +37,8 @@ object Main {
mainInteractive: Boolean,
stdin: InputStream,
stdout: PrintStream,
- stderr: PrintStream): (Boolean, Option[Evaluator.State]) = {
+ stderr: PrintStream,
+ env: Map[String, String]): (Boolean, Option[Evaluator.State]) = {
import ammonite.main.Cli
val removed = Set("predef-code", "no-home-predef")
@@ -102,7 +106,8 @@ object Main {
val runner = new mill.main.MainRunner(
config.copy(colored = Some(mainInteractive)),
stdout, stderr, stdin,
- stateCache
+ stateCache,
+ env
)
if (ClientServer.isJava9OrAbove) {
diff --git a/main/src/mill/main/MainRunner.scala b/main/src/mill/main/MainRunner.scala
index efebd5a5..fed664fd 100644
--- a/main/src/mill/main/MainRunner.scala
+++ b/main/src/mill/main/MainRunner.scala
@@ -20,7 +20,8 @@ class MainRunner(val config: ammonite.main.Cli.Config,
outprintStream: PrintStream,
errPrintStream: PrintStream,
stdIn: InputStream,
- stateCache0: Option[Evaluator.State] = None)
+ stateCache0: Option[Evaluator.State] = None,
+ env : Map[String, String])
extends ammonite.MainRunner(
config, outprintStream, errPrintStream,
stdIn, outprintStream, errPrintStream
@@ -75,7 +76,8 @@ class MainRunner(val config: ammonite.main.Cli.Config,
errPrintStream,
errPrintStream,
stdIn
- )
+ ),
+ env
)
result match{
diff --git a/main/src/mill/main/RunScript.scala b/main/src/mill/main/RunScript.scala
index 77930cc8..75042dea 100644
--- a/main/src/mill/main/RunScript.scala
+++ b/main/src/mill/main/RunScript.scala
@@ -29,7 +29,8 @@ object RunScript{
instantiateInterpreter: => Either[(Res.Failing, Seq[(Path, Long)]), ammonite.interp.Interpreter],
scriptArgs: Seq[String],
stateCache: Option[Evaluator.State],
- log: Logger)
+ log: Logger,
+ env : Map[String, String])
: (Res[(Evaluator[Any], Seq[PathRef], Either[String, Seq[Js.Value]])], Seq[(Path, Long)]) = {
val (evalState, interpWatched) = stateCache match{
@@ -53,7 +54,8 @@ object RunScript{
val evalRes =
for(s <- evalState)
- yield new Evaluator[Any](home, wd / 'out, wd / 'out, s.rootModule, log, s.classLoaderSig, s.workerCache)
+ yield new Evaluator[Any](home, wd / 'out, wd / 'out, s.rootModule, log,
+ s.classLoaderSig, s.workerCache, env)
val evaluated = for{
evaluator <- evalRes
diff --git a/main/src/mill/main/Server.scala b/main/src/mill/main/Server.scala
index c0d75c87..14aade4c 100644
--- a/main/src/mill/main/Server.scala
+++ b/main/src/mill/main/Server.scala
@@ -4,6 +4,7 @@ import java.io._
import java.net.Socket
import mill.Main
+import scala.collection.JavaConverters._
import org.scalasbt.ipcsocket._
import mill.client._
import mill.eval.Evaluator
@@ -16,7 +17,8 @@ trait ServerMain[T]{
mainInteractive: Boolean,
stdin: InputStream,
stdout: PrintStream,
- stderr: PrintStream): (Boolean, Option[T])
+ stderr: PrintStream,
+ env : Map[String, String]): (Boolean, Option[T])
}
object ServerMain extends mill.main.ServerMain[Evaluator.State]{
@@ -34,13 +36,15 @@ object ServerMain extends mill.main.ServerMain[Evaluator.State]{
mainInteractive: Boolean,
stdin: InputStream,
stdout: PrintStream,
- stderr: PrintStream) = Main.main0(
+ stderr: PrintStream,
+ env : Map[String, String]) = Main.main0(
args,
stateCache,
mainInteractive,
DummyInputStream,
stdout,
- stderr
+ stderr,
+ env
)
}
@@ -96,6 +100,7 @@ class Server[T](lockBase: String,
val argStream = new FileInputStream(lockBase + "/run")
val interactive = argStream.read() != 0;
val args = ClientServer.parseArgs(argStream)
+ val env = ClientServer.parseMap(argStream)
argStream.close()
var done = false
@@ -109,7 +114,9 @@ class Server[T](lockBase: String,
sm.stateCache,
interactive,
socketIn,
- stdout, stderr
+ stdout,
+ stderr,
+ env.asScala.toMap
)
sm.stateCache = newStateCache