diff --git a/launch/Boot.scala b/launch/Boot.scala index 785c30a69..4e4f79770 100644 --- a/launch/Boot.scala +++ b/launch/Boot.scala @@ -12,16 +12,21 @@ object Boot { System.clearProperty("scala.home") // avoid errors from mixing Scala versions in the same JVM CheckProxy() + run(args) + System.exit(0) + } + def run(args: Array[String]) + { try { Launch(args.toList) } catch { case b: BootException => errorAndExit(b.toString) case r: xsbti.RetrieveException =>errorAndExit("Error: " + r.getMessage) + case r: xsbti.FullReload => run(r.arguments) case e => e.printStackTrace errorAndExit(Pre.prefixError(e.toString)) } - System.exit(0) } private def errorAndExit(msg: String) { diff --git a/launch/interface/src/main/java/xsbti/FullReload.java b/launch/interface/src/main/java/xsbti/FullReload.java new file mode 100644 index 000000000..eb890ccfb --- /dev/null +++ b/launch/interface/src/main/java/xsbti/FullReload.java @@ -0,0 +1,11 @@ +package xsbti; + +public final class FullReload extends RuntimeException +{ + private final String[] arguments; + public FullReload(String[] arguments) + { + this.arguments = arguments; + } + public String[] arguments() { return arguments; } +} \ No newline at end of file