summaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authorLi Haoyi <haoyi.sg@gmail.com>2017-12-31 22:56:45 -0800
committerLi Haoyi <haoyi.sg@gmail.com>2018-01-01 10:10:19 -0800
commitcf5fb5fdfd477e0bb4ffa0e4fec3a8ec01bf5cf1 (patch)
treef3897463b6f55019f2bbd59ba5cff73cf0fb571f /core
parent6996c01a391cb9aaa27268dd1f0cf0a1749ade21 (diff)
downloadmill-cf5fb5fdfd477e0bb4ffa0e4fec3a8ec01bf5cf1.tar.gz
mill-cf5fb5fdfd477e0bb4ffa0e4fec3a8ec01bf5cf1.tar.bz2
mill-cf5fb5fdfd477e0bb4ffa0e4fec3a8ec01bf5cf1.zip
Split Acyclic/Jawn/BetterFiles tests into their own `integration/` test suite.
Those tests now download a snapshot of the relevant git repo rather than vendoring the files, and use a bare `build.sc` instead of having the build object be included in the test classpath. Tests pass using `sbt integration/test`, but `mill integration.test` still doesn't work
Diffstat (limited to 'core')
-rw-r--r--core/src/main/scala/mill/main/MainRunner.scala10
-rw-r--r--core/src/main/scala/mill/main/RunScript.scala7
-rw-r--r--core/src/main/scala/mill/modules/Jvm.scala10
3 files changed, 15 insertions, 12 deletions
diff --git a/core/src/main/scala/mill/main/MainRunner.scala b/core/src/main/scala/mill/main/MainRunner.scala
index 8f58f114..869975bc 100644
--- a/core/src/main/scala/mill/main/MainRunner.scala
+++ b/core/src/main/scala/mill/main/MainRunner.scala
@@ -11,8 +11,7 @@ import upickle.Js
* `build.sc` scripts with mill-specific tweaks such as a custom
* `scriptCodeWrapper` or with a persistent evaluator between runs.
*/
-class MainRunner(config: ammonite.main.Cli.Config,
- show: Boolean)
+class MainRunner(config: ammonite.main.Cli.Config, show: Boolean)
extends ammonite.MainRunner(
config,
System.out, System.err, System.in, System.out, System.err
@@ -72,7 +71,12 @@ class MainRunner(config: ammonite.main.Cli.Config,
}
override def initMain(isRepl: Boolean) = {
- super.initMain(isRepl).copy(scriptCodeWrapper = mill.main.MainRunner.CustomCodeWrapper)
+ super.initMain(isRepl).copy(
+ scriptCodeWrapper = mill.main.MainRunner.CustomCodeWrapper,
+ // Ammonite does not properly forward the wd from CliConfig to Main, so
+ // force forward it outselves
+ wd = config.wd
+ )
}
}
diff --git a/core/src/main/scala/mill/main/RunScript.scala b/core/src/main/scala/mill/main/RunScript.scala
index 1fac419b..4fa7953b 100644
--- a/core/src/main/scala/mill/main/RunScript.scala
+++ b/core/src/main/scala/mill/main/RunScript.scala
@@ -3,7 +3,7 @@ package mill.main
import java.nio.file.NoSuchFileException
import ammonite.interp.Interpreter
-import ammonite.ops.{Path, pwd, read}
+import ammonite.ops.{Path, read}
import ammonite.util.Util.CodeSource
import ammonite.util.{Name, Res, Util}
import mill.{PathRef, define}
@@ -12,9 +12,6 @@ import mill.discover.Mirror.Segment
import mill.discover.{Discovered, Mirror}
import mill.eval.{Evaluator, Result}
import mill.util.{OSet, PrintLogger}
-import upickle.Js
-
-import scala.collection.mutable
/**
* Custom version of ammonite.main.Scripts, letting us run the build.sc script
@@ -39,7 +36,7 @@ object RunScript{
case _ =>
interp.watch(path)
for(mapping <- evaluateMapping(wd, path, interp))
- yield new Evaluator(pwd / 'out, pwd, mapping, log)
+ yield new Evaluator(wd / 'out, wd, mapping, log)
}
(watches, res) <- Res(evaluateTarget(evaluator, scriptArgs))
} yield (evaluator, watches, res)
diff --git a/core/src/main/scala/mill/modules/Jvm.scala b/core/src/main/scala/mill/modules/Jvm.scala
index 3bed0917..1bff3c9b 100644
--- a/core/src/main/scala/mill/modules/Jvm.scala
+++ b/core/src/main/scala/mill/modules/Jvm.scala
@@ -39,7 +39,7 @@ object Jvm {
classPath: Seq[Path],
jvmOptions: Seq[String] = Seq.empty,
options: Seq[String] = Seq.empty,
- workingDir: Path = ammonite.ops.pwd)
+ workingDir: Path = null)
(implicit ctx: Ctx) = {
val commandArgs =
@@ -48,9 +48,11 @@ object Jvm {
Vector("-cp", classPath.mkString(":"), mainClass) ++
options
+ val workingDir1 = Option(workingDir).getOrElse(ctx.dest)
+ mkdir(workingDir1)
val proc =
new java.lang.ProcessBuilder()
- .directory(workingDir.toIO)
+ .directory(workingDir1.toIO)
.command(commandArgs:_*)
.redirectOutput(ProcessBuilder.Redirect.PIPE)
.redirectError(ProcessBuilder.Redirect.PIPE)
@@ -158,11 +160,11 @@ object Jvm {
val seen = mutable.Set("META-INF/MANIFEST.MF")
try{
- assert(inputPaths.forall(exists(_)))
+
for{
p <- inputPaths
-
+ if exists(p)
(file, mapping) <-
if (p.isFile) {
val jf = new JarFile(p.toIO)