aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-rw-r--r--src/main/scala-sbt-0.13/Compat.scala21
-rw-r--r--src/main/scala-sbt-1.0/Compat.scala30
-rw-r--r--src/main/scala/spray/boilerplate/BoilerplatePlugin.scala19
3 files changed, 60 insertions, 10 deletions
diff --git a/src/main/scala-sbt-0.13/Compat.scala b/src/main/scala-sbt-0.13/Compat.scala
new file mode 100644
index 0000000..6138f7c
--- /dev/null
+++ b/src/main/scala-sbt-0.13/Compat.scala
@@ -0,0 +1,21 @@
+/*
+ * sbt-boilerplate is distributed under the 2-Clause BSD license. See the LICENSE file in the root
+ * of the repository.
+ *
+ * Copyright (c) 2012-2016 Johannes Rudolph
+ */
+package spray.boilerplate
+
+import sbt._
+import Keys._
+
+object Compat {
+ private val boilerplateSource = settingKey[File]("Default directory containing boilerplate template sources.")
+ private val inputFilter = "*.template"
+
+ def allPaths(f: File) = f.***
+
+ def watchSourceSettings = Def.settings {
+ Seq(watchSources in Defaults.ConfigGlobal ++= ((boilerplateSource.value ** inputFilter) --- (boilerplateSource.value ** excludeFilter.value ** inputFilter)).get)
+ }
+}
diff --git a/src/main/scala-sbt-1.0/Compat.scala b/src/main/scala-sbt-1.0/Compat.scala
new file mode 100644
index 0000000..f1a9d47
--- /dev/null
+++ b/src/main/scala-sbt-1.0/Compat.scala
@@ -0,0 +1,30 @@
+/*
+ * sbt-boilerplate is distributed under the 2-Clause BSD license. See the LICENSE file in the root
+ * of the repository.
+ *
+ * Copyright (c) 2012-2016 Johannes Rudolph
+ */
+package spray.boilerplate
+
+import sbt._
+import Keys._
+import sbt.internal.io.Source
+
+object Compat {
+ private val boilerplateSource = settingKey[File]("Default directory containing boilerplate template sources.")
+ private val inputFilter = """.*\.template""".r
+
+ def allPaths(f: File) = f.allPaths
+
+ def watchSourceSettings = Def.settings {
+ Seq(
+ watchSources in Defaults.ConfigGlobal +=
+ new Source(
+ boilerplateSource.value,
+ new NameFilter {
+ override def accept(name: String): Boolean = inputFilter.pattern.matcher(name).matches()
+ },
+ NothingFilter)
+ )
+ }
+}
diff --git a/src/main/scala/spray/boilerplate/BoilerplatePlugin.scala b/src/main/scala/spray/boilerplate/BoilerplatePlugin.scala
index 88e6661..50bcfd5 100644
--- a/src/main/scala/spray/boilerplate/BoilerplatePlugin.scala
+++ b/src/main/scala/spray/boilerplate/BoilerplatePlugin.scala
@@ -31,13 +31,12 @@ object BoilerplatePlugin extends AutoPlugin {
boilerplateSignature := "// auto-generated by sbt-boilerplate\n")
private def rawBoilerplateSettings: Seq[Setting[_]] = {
- val inputFilter = "*.template"
- Seq(
- boilerplateSource := sourceDirectory.value / "boilerplate",
- watchSources in Defaults.ConfigGlobal ++= ((boilerplateSource.value ** inputFilter) --- (boilerplateSource.value ** excludeFilter.value ** inputFilter)).get,
- boilerplateGenerate := generateFromTemplates(streams.value, boilerplateSignature.value, boilerplateSource.value, sourceManaged.value),
- mappings in packageSrc ++= managedSources.value pair (Path.relativeTo(sourceManaged.value) | Path.flat),
- sourceGenerators <+= boilerplateGenerate)
+ Compat.watchSourceSettings ++
+ Seq(
+ boilerplateSource := sourceDirectory.value / "boilerplate",
+ boilerplateGenerate := generateFromTemplates(streams.value, boilerplateSignature.value, boilerplateSource.value, sourceManaged.value),
+ mappings in packageSrc ++= managedSources.value pair (Path.relativeTo(sourceManaged.value) | Path.flat),
+ sourceGenerators += boilerplateGenerate)
}
def generateFromTemplates(streams: TaskStreams, signature: String, sourceDir: File, targetDir: File): Seq[File] = {
@@ -53,7 +52,7 @@ object BoilerplatePlugin extends AutoPlugin {
new File(f.getParent, newName)
}
- val mapping = (files pair rebase(sourceDir, targetDir)).map {
+ val mapping = (files pair Path.rebase(sourceDir, targetDir)).map {
case (orig, target) ⇒ (orig, changeExtension(target))
}
@@ -87,12 +86,12 @@ object BoilerplatePlugin extends AutoPlugin {
}
val toRemove =
- targetDir.***
+ Compat.allPaths(targetDir)
// apply filters with increasing effort
.filter(f ⇒ f.exists && f.isFile)
.filter(_.length >= signature.length)
.filter(!fileSet(_))
- .filter(containsSignature)
+ .filter(containsSignature _)
.get
toRemove.foreach { f ⇒