diff options
author | Christopher Vogt <oss.nsp@cvogt.org> | 2017-03-29 10:08:59 -0400 |
---|---|---|
committer | Christopher Vogt <oss.nsp@cvogt.org> | 2017-04-02 02:43:39 -0400 |
commit | 2d73091740528b423259c6190b3ae344a419978a (patch) | |
tree | 30cfc912f6267c263a28fa1860d984b00c6b2a97 | |
parent | e614bf22c6a4b09962e44bb20d880c1b4107df6d (diff) | |
download | cbt-2d73091740528b423259c6190b3ae344a419978a.tar.gz cbt-2d73091740528b423259c6190b3ae344a419978a.tar.bz2 cbt-2d73091740528b423259c6190b3ae344a419978a.zip |
factor out buildinfo into plugin
-rw-r--r-- | examples/build-info-example/build/build.scala | 19 | ||||
-rw-r--r-- | examples/build-info-example/src_generated/BuildInfo.scala | 11 | ||||
-rw-r--r-- | stage2/plugins/GenerateBuildInfo.scala | 29 |
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 +} +""" + ) + } + } + } +} |