mirror of https://github.com/sbt/sbt.git
22 lines
682 B
Scala
22 lines
682 B
Scala
/* sbt -- Simple Build Tool
|
|
* Copyright 2009, 2010 Mark Harrah
|
|
*/
|
|
package sbt
|
|
|
|
/** Defines a function to call as sbt exits.*/
|
|
trait ExitHook extends NotNull
|
|
{
|
|
/** 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 ExitHooks
|
|
{
|
|
/** Calls each registered exit hook, trapping any exceptions so that each hook is given a chance to run. */
|
|
def runExitHooks(exitHooks: Seq[ExitHook]): Seq[Throwable] =
|
|
exitHooks.flatMap( hook =>
|
|
ErrorHandling.wideConvert( hook.runBeforeExiting() ).left.toOption
|
|
)
|
|
} |