From c60578e2972b05a7a13e2eedbf5861c2d21aba21 Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Tue, 29 Mar 2016 00:03:12 -0400 Subject: [PATCH] Port actions/aggregate --- sbt/src/sbt-test/actions/aggregate/build.sbt | 1 + .../actions/aggregate/changes/build.sbt | 7 +++++ .../actions/aggregate/project/Marker.scala | 26 +++++++++++-------- .../aggregate/project/TestProject.scala | 10 ------- sbt/src/sbt-test/actions/aggregate/test | 1 + 5 files changed, 24 insertions(+), 21 deletions(-) create mode 100644 sbt/src/sbt-test/actions/aggregate/build.sbt create mode 100644 sbt/src/sbt-test/actions/aggregate/changes/build.sbt delete mode 100644 sbt/src/sbt-test/actions/aggregate/project/TestProject.scala diff --git a/sbt/src/sbt-test/actions/aggregate/build.sbt b/sbt/src/sbt-test/actions/aggregate/build.sbt new file mode 100644 index 000000000..c128b140e --- /dev/null +++ b/sbt/src/sbt-test/actions/aggregate/build.sbt @@ -0,0 +1 @@ +lazy val root = (project in file(".")) diff --git a/sbt/src/sbt-test/actions/aggregate/changes/build.sbt b/sbt/src/sbt-test/actions/aggregate/changes/build.sbt new file mode 100644 index 000000000..d369e4f9c --- /dev/null +++ b/sbt/src/sbt-test/actions/aggregate/changes/build.sbt @@ -0,0 +1,7 @@ +lazy val root = (project in file(".")). + aggregate((if(file("aggregate").exists) Seq(sub: sbt.ProjectReference) else Nil): _*) + +lazy val sub = (project in file("sub")). + aggregate(sub2) + +lazy val sub2 = (project in file("sub") / "sub") diff --git a/sbt/src/sbt-test/actions/aggregate/project/Marker.scala b/sbt/src/sbt-test/actions/aggregate/project/Marker.scala index b142c4576..91d73a39b 100644 --- a/sbt/src/sbt-test/actions/aggregate/project/Marker.scala +++ b/sbt/src/sbt-test/actions/aggregate/project/Marker.scala @@ -3,16 +3,20 @@ import Keys._ import Import._ import Project.Initialize -trait Marker +object Marker extends AutoPlugin { - final lazy val Mark = TaskKey[Unit]("mark") - final def mark: Initialize[Task[Unit]] = mark(baseDirectory) - final def mark(project: Reference): Initialize[Task[Unit]] = mark(baseDirectory in project) - final def mark(baseKey: SettingKey[File]): Initialize[Task[Unit]] = baseKey map { base => - val toMark = base / "ran" - if(toMark.exists) - error("Already ran (" + toMark + " exists)") - else - IO touch toMark - } + override def trigger = allRequirements + override def requires = sbt.plugins.JvmPlugin + object autoImport { + final lazy val Mark = TaskKey[Unit]("mark") + final def mark: Initialize[Task[Unit]] = mark(baseDirectory) + final def mark(project: Reference): Initialize[Task[Unit]] = mark(baseDirectory in project) + final def mark(baseKey: SettingKey[File]): Initialize[Task[Unit]] = baseKey map { base => + val toMark = base / "ran" + if(toMark.exists) + error("Already ran (" + toMark + " exists)") + else + IO touch toMark + } + } } diff --git a/sbt/src/sbt-test/actions/aggregate/project/TestProject.scala b/sbt/src/sbt-test/actions/aggregate/project/TestProject.scala deleted file mode 100644 index fd7076bb3..000000000 --- a/sbt/src/sbt-test/actions/aggregate/project/TestProject.scala +++ /dev/null @@ -1,10 +0,0 @@ -import sbt._ -import Import._ - -object SingleBuild extends Build with Marker -{ - override def projects = if(file("multi").exists) Seq(root, sub, sub2) else Seq(root) - lazy val root = Project("root", file("."), aggregate = if(file("aggregate").exists) Seq(sub) else Nil ) - lazy val sub = Project("sub", file("sub"), aggregate = Seq(sub2)) - lazy val sub2 = Project("sub2", file("sub") / "sub") -} diff --git a/sbt/src/sbt-test/actions/aggregate/test b/sbt/src/sbt-test/actions/aggregate/test index af3e2a5d8..054847bc4 100644 --- a/sbt/src/sbt-test/actions/aggregate/test +++ b/sbt/src/sbt-test/actions/aggregate/test @@ -22,6 +22,7 @@ $ delete ran # switch to multi-project, no aggregation yet. 'reload' will drop session settings $ touch multi +$ copy-file changes/build.sbt build.sbt $ mkdir sub sub/sub > reload