sbt/compile/interface/ConsoleInterface.scala

40 lines
1.1 KiB
Scala
Raw Normal View History

2009-10-08 03:27:53 +02:00
/* sbt -- Simple Build Tool
* Copyright 2008, 2009 Mark Harrah
*/
package xsbt
import xsbti.Logger
import scala.tools.nsc.{GenericRunnerCommand,InterpreterLoop}
class ConsoleInterface
{
2010-04-25 19:18:36 +02:00
def run(args: Array[String], bootClasspathString: String, classpathString: String, initialCommands: String, log: Logger)
2009-10-08 03:27:53 +02:00
{
2010-04-25 19:18:36 +02:00
val settings = MakeSettings(args.toList, log)
2010-03-23 01:42:59 +01:00
if(!bootClasspathString.isEmpty)
settings.bootclasspath.value = bootClasspathString
2009-10-08 03:27:53 +02:00
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)
}
}
2010-03-26 21:15:52 +01:00
object MakeSettings
2009-10-08 03:27:53 +02:00
{
2010-04-25 19:18:36 +02:00
def apply(args: List[String], log: Logger) =
2009-10-08 03:27:53 +02:00
{
2010-04-25 19:18:36 +02:00
val command = new GenericRunnerCommand(args, message => log.error(Message(message)))
2009-10-08 03:27:53 +02:00
if(command.ok)
command.settings
else
throw new InterfaceCompileFailed(Array(), command.usageMsg)
}
}