summaryrefslogtreecommitdiff
path: root/core/src/main/scala/forge/Main.scala
blob: e3b89f600e42f3f979c81e904fcee2f6627561ef (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package forge

import ammonite.ops._
import ammonite.util.{Name, Res}
import forge.discover.Discovered
import forge.eval.Evaluator
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, 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
    }
  }

}