mirror of https://github.com/sbt/sbt.git
39 lines
1023 B
Scala
39 lines
1023 B
Scala
|
|
/* sbt -- Simple Build Tool
|
||
|
|
* Copyright 2008, 2009 Mark Harrah
|
||
|
|
*/
|
||
|
|
package xsbt
|
||
|
|
|
||
|
|
import xsbti.Logger
|
||
|
|
import scala.tools.nsc.{GenericRunnerCommand,InterpreterLoop}
|
||
|
|
|
||
|
|
class ConsoleInterface
|
||
|
|
{
|
||
|
|
def run(bootClasspathString: String, classpathString: String, initialCommands: String, log: Logger)
|
||
|
|
{
|
||
|
|
val settings = Settings(log)
|
||
|
|
settings.bootclasspath.value = bootClasspathString
|
||
|
|
settings.classpath.value = classpathString
|
||
|
|
log.info(Message("Starting scala interpreter..."))
|
||
|
|
log.debug(Message(" Classpath: " + settings.classpath.value))
|
||
|
|
log.info(Message(""))
|
||
|
|
val loop = new InterpreterLoop {
|
||
|
|
override def createInterpreter() = {
|
||
|
|
super.createInterpreter()
|
||
|
|
if(!initialCommands.isEmpty) interpreter.interpret(initialCommands)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
loop.main(settings)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
object Settings
|
||
|
|
{
|
||
|
|
def apply(log: Logger) =
|
||
|
|
{
|
||
|
|
val command = new GenericRunnerCommand(Nil, message => log.error(Message(message)))
|
||
|
|
if(command.ok)
|
||
|
|
command.settings
|
||
|
|
else
|
||
|
|
throw new InterfaceCompileFailed(Array(), command.usageMsg)
|
||
|
|
}
|
||
|
|
}
|