mirror of https://github.com/sbt/sbt.git
convenience method for running tasks in aggregate
This commit is contained in:
parent
e16bf3f695
commit
22b71b823a
|
|
@ -75,11 +75,19 @@ final case class Extracted(structure: BuildStructure, session: SessionSettings,
|
||||||
def runTask[T](key: TaskKey[T], state: State): (State, T) =
|
def runTask[T](key: TaskKey[T], state: State): (State, T) =
|
||||||
{
|
{
|
||||||
import EvaluateTask._
|
import EvaluateTask._
|
||||||
val rkey = Project.mapScope(Scope.resolveScope(GlobalScope, currentRef.build, rootProject) )( key.scopedKey )
|
val rkey = resolve(key.scopedKey)
|
||||||
val value: Option[(State, Result[T])] = apply(structure, key.task.scopedKey, state, currentRef)
|
val value: Option[(State, Result[T])] = apply(structure, key.task.scopedKey, state, currentRef)
|
||||||
val (newS, result) = getOrError(rkey.scope, rkey.key, value)
|
val (newS, result) = getOrError(rkey.scope, rkey.key, value)
|
||||||
(newS, processResult(result, newS.log))
|
(newS, processResult(result, newS.log))
|
||||||
}
|
}
|
||||||
|
def runAggregated[T](key: TaskKey[T], state: State): State =
|
||||||
|
{
|
||||||
|
val rkey = resolve(key.scopedKey)
|
||||||
|
val tasks = Aggregation.getTasks(rkey, structure, true)
|
||||||
|
Aggregation.runTasks(state, structure, tasks, Aggregation.Dummies(KNil, HNil), show = false )(showKey)
|
||||||
|
}
|
||||||
|
private[this] def resolve[T](key: ScopedKey[T]): ScopedKey[T] =
|
||||||
|
Project.mapScope(Scope.resolveScope(GlobalScope, currentRef.build, rootProject) )( key.scopedKey )
|
||||||
private def getOrError[T](scope: Scope, key: AttributeKey[_], value: Option[T])(implicit display: Show[ScopedKey[_]]): T =
|
private def getOrError[T](scope: Scope, key: AttributeKey[_], value: Option[T])(implicit display: Show[ScopedKey[_]]): T =
|
||||||
value getOrElse error(display(ScopedKey(scope, key)) + " is undefined.")
|
value getOrElse error(display(ScopedKey(scope, key)) + " is undefined.")
|
||||||
private def getOrError[T](scope: Scope, key: AttributeKey[T])(implicit display: Show[ScopedKey[_]]): T =
|
private def getOrError[T](scope: Scope, key: AttributeKey[T])(implicit display: Show[ScopedKey[_]]): T =
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue