From 602e5e2f279f83181cd0b5f58537942c44ac6e1b Mon Sep 17 00:00:00 2001 From: Stefan Zeiger Date: Wed, 11 Jan 2012 15:02:14 +0100 Subject: [PATCH] Make the launcher initialize Jansi if it's found on the path --- launch/Boot.scala | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/launch/Boot.scala b/launch/Boot.scala index d65d8e041..17927b437 100644 --- a/launch/Boot.scala +++ b/launch/Boot.scala @@ -16,6 +16,7 @@ object Boot case _ => System.clearProperty("scala.home") // avoid errors from mixing Scala versions in the same JVM CheckProxy() + initJansi() run(args) } } @@ -31,7 +32,7 @@ object Boot catch { case b: BootException => errorAndExit(b.toString) - case r: xsbti.RetrieveException => errorAndExit("Error: " + r.getMessage) + case r: xsbti.RetrieveException => errorAndExit("Error: " + r.getMessage) case r: xsbti.FullReload => Some(r.arguments) case e => e.printStackTrace @@ -43,6 +44,18 @@ object Boot System.out.println(msg) exit(1) } - private def exit(code: Int): Nothing = + private def exit(code: Int): Nothing = System.exit(code).asInstanceOf[Nothing] + + private def initJansi() { + try { + val c = Class.forName("org.fusesource.jansi.AnsiConsole") + c.getMethod("systemInstall").invoke(null) + if (System.getProperty("sbt.log.format") eq null) + System.setProperty("sbt.log.format", "true") + } catch { + case ignore: ClassNotFoundException => + case ex => println("Jansi found on class path but initialization failed: " + ex) + } + } }