show full stack trace by default when running in batch mode

This commit is contained in:
Mark Harrah
2012-06-22 22:11:24 -04:00
parent 2df88bf0a3
commit dc2aaaf7ac
4 changed files with 18 additions and 3 deletions
+2 -2
View File
@@ -118,9 +118,9 @@ object BasicCommands
val line = reader.readLine(prompt)
line match {
case Some(line) =>
val newState = s.copy(onFailure = Some(Shell), remainingCommands = line +: Shell +: s.remainingCommands)
val newState = s.copy(onFailure = Some(Shell), remainingCommands = line +: Shell +: s.remainingCommands).setInteractive(true)
if(line.trim.isEmpty) newState else newState.clearGlobalLog
case None => s
case None => s.setInteractive(false)
}
}
+1
View File
@@ -7,4 +7,5 @@ object BasicKeys
val historyPath = AttributeKey[Option[File]]("history", "The location where command line history is persisted.", 40)
val shellPrompt = AttributeKey[State => String]("shell-prompt", "The function that constructs the command prompt from the current build state.", 10000)
val watch = AttributeKey[Watched]("watch", "Continuous execution configuration.", 1000)
private[sbt] val interactive = AttributeKey[Boolean]("interactive", "True if commands are currently being entered from an interactive environment.", 10)
}
+12
View File
@@ -38,6 +38,13 @@ trait Identity {
override final def toString = super.toString
}
/** StateOps methods to be merged at the next binary incompatible release. */
private[sbt] trait NewStateOps
{
def interactive: Boolean
def setInteractive(flag: Boolean): State
}
/** Convenience methods for State transformations and operations. */
trait StateOps {
def process(f: (String, State) => State): State
@@ -151,6 +158,11 @@ object State
new Reboot(app.scalaProvider.version, state.remainingCommands, app.id, state.configuration.baseDirectory)
}
private[sbt] implicit def newStateOps(s: State): NewStateOps = new NewStateOps {
def interactive = s.get(BasicKeys.interactive).getOrElse(false)
def setInteractive(i: Boolean) = s.put(BasicKeys.interactive, i)
}
/** Provides operations and transformations on State. */
implicit def stateOps(s: State): StateOps = new StateOps {
def process(f: (String, State) => State): State =