mirror of https://github.com/sbt/sbt.git
add failure wall command '--'
This commit is contained in:
parent
6b4844094a
commit
018ef2b3c7
|
|
@ -161,6 +161,8 @@ CompileSyntax + """
|
||||||
Cached information about the compilation will be written to 'cache'.
|
Cached information about the compilation will be written to 'cache'.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
val FailureWall = "--"
|
||||||
|
|
||||||
def Load = "load"
|
def Load = "load"
|
||||||
def LoadLabel = "a project"
|
def LoadLabel = "a project"
|
||||||
def LoadCommand = "load-commands"
|
def LoadCommand = "load-commands"
|
||||||
|
|
|
||||||
|
|
@ -61,9 +61,13 @@ class xMain extends xsbti.AppMain
|
||||||
import CommandSupport._
|
import CommandSupport._
|
||||||
object Commands
|
object Commands
|
||||||
{
|
{
|
||||||
def DefaultCommands = Seq(help, reload, read, history, exit, load, loadCommands, compile, discover,
|
def DefaultCommands = Seq(ignore, help, reload, read, history, exit, load, loadCommands, compile, discover,
|
||||||
projects, project, setOnFailure, ifLast, multi, shell, alias, append, act)
|
projects, project, setOnFailure, ifLast, multi, shell, alias, append, act)
|
||||||
|
|
||||||
|
def ignore = nothing(Set(FailureWall))
|
||||||
|
|
||||||
|
def nothing(ignore: Set[String]) = Command.univ { s => Apply(){ case in if ignore(in.line) => s } }
|
||||||
|
|
||||||
def applicable(state: State): Stream[Apply] =
|
def applicable(state: State): Stream[Apply] =
|
||||||
state.processors.toStream.flatMap(_.applies(state) )
|
state.processors.toStream.flatMap(_.applies(state) )
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@
|
||||||
*/
|
*/
|
||||||
package sbt
|
package sbt
|
||||||
|
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
import CommandSupport.FailureWall
|
||||||
|
|
||||||
case class State(project: Any)(
|
case class State(project: Any)(
|
||||||
val configuration: xsbti.AppConfiguration,
|
val configuration: xsbti.AppConfiguration,
|
||||||
|
|
@ -50,10 +51,18 @@ object State
|
||||||
def get[T](key: AttributeKey[T]) = s.attributes.get(key)
|
def get[T](key: AttributeKey[T]) = s.attributes.get(key)
|
||||||
def put[T](key: AttributeKey[T], value: T) = s.copy()(attributes = s.attributes.put(key, value))
|
def put[T](key: AttributeKey[T], value: T) = s.copy()(attributes = s.attributes.put(key, value))
|
||||||
def fail =
|
def fail =
|
||||||
s.onFailure match
|
{
|
||||||
|
val remaining = s.commands.dropWhile(_ != FailureWall)
|
||||||
|
if(remaining.isEmpty)
|
||||||
{
|
{
|
||||||
case Some(c) => s.copy()(commands = c :: Nil, onFailure = None)
|
s.onFailure match
|
||||||
case None => exit(ok = false)
|
{
|
||||||
|
case Some(c) => s.copy()(commands = c :: Nil, onFailure = None)
|
||||||
|
case None => exit(ok = false)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
s.copy()(commands = remaining)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue