Skip to content

Instantly share code, notes, and snippets.

@petekneller
Created September 14, 2015 10:13
Show Gist options
  • Save petekneller/411c7b98632ed570a67a to your computer and use it in GitHub Desktop.
Save petekneller/411c7b98632ed570a67a to your computer and use it in GitHub Desktop.
SBT BuildInfo example 2 - output in /src
object BuildInfo {
private def outputDir(baseDir: File): File = baseDir / "src_mananaged"
lazy val settings: Seq[Setting[_]] = Seq(
managedSourceDirectories in Compile <+= baseDirectory apply {baseDir => outputDir(baseDir)},
sourceGenerators in Compile <+= (streams, baseDirectory, version) map emitBuildInfo
)
def emitBuildInfo(logger: TaskStreams, baseDir: File, buildVersion: String): Seq[File] = {
val outputFile = outputDir(baseDir) / "BuildInfo.scala"
logger.log.info(s"Generating build info file at: ${outputFile}")
IO.delete(outputFile)
IO.write(outputFile,
s"""
|package buildInfo
|
|object BuildInfo {
| val version = "$buildVersion"
|}""".stripMargin)
Seq(outputFile)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment