mirror of
https://github.com/sbt/sbt.git
synced 2026-09-01 10:37:54 +02:00
show full stack trace by default when running in batch mode
This commit is contained in:
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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 =
|
||||
|
||||
Reference in New Issue
Block a user