aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohannes Rudolph <johannes.rudolph@gmail.com>2016-02-29 14:05:43 +0100
committerJohannes Rudolph <johannes.rudolph@gmail.com>2016-02-29 14:05:51 +0100
commitfd5e148e31a649d09d76e19980e2845a90ea5ace (patch)
tree480bc7d8d6dfd2cfff429d3ff2262d4fc4a67b0b
parent4a7c5fa2c92f61ddae64e505bebc0de552ac69d4 (diff)
downloadsbt-boilerplate-fd5e148e31a649d09d76e19980e2845a90ea5ace.tar.gz
sbt-boilerplate-fd5e148e31a649d09d76e19980e2845a90ea5ace.tar.bz2
sbt-boilerplate-fd5e148e31a649d09d76e19980e2845a90ea5ace.zip
add ".scala" to output filename automatically if the generated file has no extension, fixes #18
-rw-r--r--README.md5
-rw-r--r--src/main/scala/spray/boilerplate/BoilerplatePlugin.scala8
2 files changed, 9 insertions, 4 deletions
diff --git a/README.md b/README.md
index 88b8410..481144b 100644
--- a/README.md
+++ b/README.md
@@ -88,7 +88,8 @@ to your `build.sbt`.
The templates have to be put into the `src/main/boilerplate` directory and the file name
must end with `.template`. The generated files will be put into the same hierarchy as they
-appear in `src/main/boilerplate` with the `.template` extension stripped off.
+appear in `src/main/boilerplate` with the `.template` extension stripped off. If the stripped
+filename has no extension ".scala" is added automatically.
## Known issues
@@ -102,6 +103,6 @@ appear in `src/main/boilerplate` with the `.template` extension stripped off.
## License
-Copyright (c) 2012-2014 Johannes Rudolph
+Copyright (c) 2012-2016 Johannes Rudolph
Published under the [BSD 2-Clause License](http://www.opensource.org/licenses/BSD-2-Clause).
diff --git a/src/main/scala/spray/boilerplate/BoilerplatePlugin.scala b/src/main/scala/spray/boilerplate/BoilerplatePlugin.scala
index 32703fd..0e63014 100644
--- a/src/main/scala/spray/boilerplate/BoilerplatePlugin.scala
+++ b/src/main/scala/spray/boilerplate/BoilerplatePlugin.scala
@@ -31,8 +31,12 @@ object BoilerplatePlugin extends Plugin {
val files = sourceDir ** "*.template"
def changeExtension(f: File): File = {
- val (ext, name) = f.getName.reverse.span(_ != '.')
- new File(f.getParent, name.drop(1).reverse.toString)
+ val (_, name) = f.getName.reverse.span(_ != '.')
+ val strippedName = name.drop(1).reverse.toString
+ val newName =
+ if (!strippedName.contains(".")) s"$strippedName.scala"
+ else strippedName
+ new File(f.getParent, newName)
}
val mapping = (files x rebase(sourceDir, targetDir)).map {