From c9f8d70ee5465c72460bb45a335375a4708539a8 Mon Sep 17 00:00:00 2001 From: Mark Harrah Date: Mon, 21 Mar 2011 20:26:04 -0400 Subject: [PATCH] command logging through Streams, 'last' without a key to redisplay it --- util/control/ExitHook.scala | 8 +++++--- util/log/ConsoleLogger.scala | 14 ++++++++++---- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/util/control/ExitHook.scala b/util/control/ExitHook.scala index 1e491b095..de85bff42 100644 --- a/util/control/ExitHook.scala +++ b/util/control/ExitHook.scala @@ -4,13 +4,15 @@ package sbt /** Defines a function to call as sbt exits.*/ -trait ExitHook extends NotNull +trait ExitHook { - /** Provides a name for this hook to be used to provide feedback to the user. */ - def name: String /** Subclasses should implement this method, which is called when this hook is executed. */ def runBeforeExiting(): Unit } +object ExitHook +{ + def apply(f: => Unit): ExitHook = new ExitHook { def runBeforeExiting() = f } +} object ExitHooks { diff --git a/util/log/ConsoleLogger.scala b/util/log/ConsoleLogger.scala index 4005a0889..f7229573e 100644 --- a/util/log/ConsoleLogger.scala +++ b/util/log/ConsoleLogger.scala @@ -1,9 +1,9 @@ /* sbt -- Simple Build Tool - * Copyright 2008, 2009, 2010 Mark Harrah + * Copyright 2008, 2009, 2010, 2011 Mark Harrah */ package sbt - import java.io.{PrintStream, PrintWriter} + import java.io.{BufferedWriter, PrintStream, PrintWriter} object ConsoleLogger { @@ -17,8 +17,14 @@ object ConsoleLogger def printWriterOut(out: PrintWriter): ConsoleOut = new ConsoleOut { val lockObject = out def print(s: String) = out.print(s) - def println(s: String) = out.println(s) - def println() = out.println() + def println(s: String) = { out.println(s); out.flush() } + def println() = { out.println(); out.flush() } + } + def bufferedWriterOut(out: BufferedWriter): ConsoleOut = new ConsoleOut { + val lockObject = out + def print(s: String) = out.write(s) + def println(s: String) = { out.write(s); println() } + def println() = { out.newLine(); out.flush() } } val formatEnabled =