2011-04-09 01:15:13 +02:00
|
|
|
/* sbt -- Simple Build Tool
|
|
|
|
|
* Copyright 2011 Mark Harrah
|
|
|
|
|
*/
|
|
|
|
|
package sbt
|
|
|
|
|
|
|
|
|
|
import java.io.File
|
|
|
|
|
import compiler.AnalyzingCompiler
|
|
|
|
|
|
|
|
|
|
object ConsoleProject
|
|
|
|
|
{
|
|
|
|
|
def apply(state: State, extra: String)(implicit log: Logger)
|
|
|
|
|
{
|
|
|
|
|
val extracted = Project extract state
|
|
|
|
|
val bindings = ("currentState" -> state) :: ("extracted" -> extracted ) :: Nil
|
|
|
|
|
val unit = extracted.currentUnit
|
2011-05-26 04:44:22 +02:00
|
|
|
val compiler = Compiler.compilers(ClasspathOptions.repl)(state.configuration, log).scalac
|
2011-04-09 01:15:13 +02:00
|
|
|
val imports = Load.getImports(unit.unit) ++ Load.importAll(bindings.map(_._1))
|
|
|
|
|
val importString = imports.mkString("", ";\n", ";\n\n")
|
|
|
|
|
val initCommands = importString + extra
|
2011-05-15 00:21:41 +02:00
|
|
|
(new Console(compiler))(unit.classpath, Nil, initCommands)(Some(unit.loader), bindings)
|
2011-04-09 01:15:13 +02:00
|
|
|
}
|
|
|
|
|
}
|