aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Vogt <oss.nsp@cvogt.org>2017-03-29 10:08:59 -0400
committerChristopher Vogt <oss.nsp@cvogt.org>2017-04-02 02:43:39 -0400
commit2d73091740528b423259c6190b3ae344a419978a (patch)
tree30cfc912f6267c263a28fa1860d984b00c6b2a97
parente614bf22c6a4b09962e44bb20d880c1b4107df6d (diff)
downloadcbt-2d73091740528b423259c6190b3ae344a419978a.tar.gz
cbt-2d73091740528b423259c6190b3ae344a419978a.tar.bz2
cbt-2d73091740528b423259c6190b3ae344a419978a.zip
factor out buildinfo into plugin
-rw-r--r--examples/build-info-example/build/build.scala19
-rw-r--r--examples/build-info-example/src_generated/BuildInfo.scala11
-rw-r--r--stage2/plugins/GenerateBuildInfo.scala29
3 files changed, 42 insertions, 17 deletions
diff --git a/examples/build-info-example/build/build.scala b/examples/build-info-example/build/build.scala
index cc4c2db..2628efc 100644
--- a/examples/build-info-example/build/build.scala
+++ b/examples/build-info-example/build/build.scala
@@ -1,22 +1,17 @@
import cbt._
import java.nio.file.Files._
-class Build(val context: Context) extends PackageJars{
+class Build(val context: Context) extends PackageJars with GenerateBuildInfo{
override def name = "build-info-example"
def groupId = "cbt.examples"
override def defaultScalaVersion = "2.11.8"
def version = "0.1"
- override def compile = { buildInfo; super.compile }
- def buildInfo = lib.writeIfChanged(
- projectDirectory / "src_generated/BuildInfo.scala",
- s"""// generated file
-import java.io._
-object BuildInfo{
-def artifactId = "$artifactId"
-def groupId = "$groupId"
-def version = "$version"
-def scalaVersion = "$scalaVersion"
-}
+ override def buildInfo = super.buildInfo.copy(
+ s"""
+ def artifactId = "$artifactId"
+ def groupId = "$groupId"
+ def version = "$version"
+ def scalaVersion = "$scalaVersion"
"""
)
}
diff --git a/examples/build-info-example/src_generated/BuildInfo.scala b/examples/build-info-example/src_generated/BuildInfo.scala
index ac0e680..4ca1162 100644
--- a/examples/build-info-example/src_generated/BuildInfo.scala
+++ b/examples/build-info-example/src_generated/BuildInfo.scala
@@ -1,8 +1,9 @@
// generated file
-import java.io._
object BuildInfo{
-def artifactId = "build-info-example"
-def groupId = "cbt.examples"
-def version = "0.1"
-def scalaVersion = "2.11.8"
+
+ def artifactId = "build-info-example"
+ def groupId = "cbt.examples"
+ def version = "0.1"
+ def scalaVersion = "2.11.8"
+
}
diff --git a/stage2/plugins/GenerateBuildInfo.scala b/stage2/plugins/GenerateBuildInfo.scala
new file mode 100644
index 0000000..f9c2aff
--- /dev/null
+++ b/stage2/plugins/GenerateBuildInfo.scala
@@ -0,0 +1,29 @@
+package cbt
+import java.io.File
+trait GenerateBuildInfo extends BaseBuild{
+ override def compile = { buildInfo.apply; super.compile }
+ def buildInfo = GenerateBuildInfo.apply( lib ).config(
+ s"""
+ def scalaVersion = "$scalaVersion"
+""",
+ None,
+ "BuildInfo",
+ projectDirectory / "src_generated"
+ )
+}
+object GenerateBuildInfo{
+ case class apply( lib: Lib ){
+ case class config( body: String, `package`: Option[String], className: String, file: File ){
+ def apply = {
+ lib.writeIfChanged(
+ file / className ++ ".scala",
+ s"""// generated file${`package`.map("\npackage "++_++"").getOrElse("")}
+object $className{
+ $body
+}
+"""
+ )
+ }
+ }
+ }
+}