diff options
author | Li Haoyi <haoyi.sg@gmail.com> | 2017-10-29 18:29:53 -0700 |
---|---|---|
committer | Li Haoyi <haoyi.sg@gmail.com> | 2017-10-29 18:29:53 -0700 |
commit | f32fca9c5858c487a83bf461d5b2ecc772025a4a (patch) | |
tree | 386b056adf594fe02f2dfd603aabdc1833165b08 /src/main | |
parent | 4e2fbfb5ae8fd7d66f78bf7ced3d6cc8cc74ceaf (diff) | |
download | mill-f32fca9c5858c487a83bf461d5b2ecc772025a4a.tar.gz mill-f32fca9c5858c487a83bf461d5b2ecc772025a4a.tar.bz2 mill-f32fca9c5858c487a83bf461d5b2ecc772025a4a.zip |
First builds work going through an Ammonite script, currently run using `sbt "~run src/test/examples/javac/build.sc`
Diffstat (limited to 'src/main')
-rw-r--r-- | src/main/scala/forge/Main.scala | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/main/scala/forge/Main.scala b/src/main/scala/forge/Main.scala index 07905ac9..d919d0e2 100644 --- a/src/main/scala/forge/Main.scala +++ b/src/main/scala/forge/Main.scala @@ -1,7 +1,25 @@ package forge +import ammonite.ops._ +import ammonite.util.{Name, Res} +import forge.util.OSet + + object Main { def main(args: Array[String]): Unit = { + ammonite.Main().instantiateInterpreter() match{ + case Right(interp) => + val result = ammonite.main.Scripts.runScript(pwd, Path(args(0), pwd), interp, Nil) + + val (obj, discovered) = result.asInstanceOf[Res.Success[(Any, forge.Discovered[Any])]].s + val mapping = Discovered.mapping(obj)(discovered) + val workspacePath = pwd / 'target / 'javac + val evaluator = new Evaluator(workspacePath, mapping) + val evaluated = evaluator.evaluate(OSet.from(mapping.keys)).evaluated.filter(mapping.contains) + (result, interp.watchedFiles) + case Left(problems) => problems + } } + } |