sbt-gs-calver/src/main/scala/gs/CalVerPlugin.scala

45 lines
1.2 KiB
Scala

package gs
import sbt._
object CalVerPlugin extends AutoPlugin {
override def trigger = allRequirements
val autoImport = CalVerKeys
import autoImport._
// Perform all version calculations and expose as a variable.
lazy val calVerDefaults: Seq[Setting[_]] = {
val isRelease = PluginProperties.isRelease()
Seq(
calVerReleasePattern := calVerReleasePattern.value.orElse(
Some(CalVer.Defaults.ReleasePattern)
),
calVerPreReleasePattern := calVerPreReleasePattern.value.orElse(
Some(CalVer.Defaults.PreReleasePattern)
),
calVerPattern := {
if (isRelease) {
calVerReleasePattern.value.getOrElse(CalVer.Defaults.ReleasePattern)
} else {
calVerPreReleasePattern.value.getOrElse(CalVer.Defaults.PreReleasePattern)
}
} ,
calVer := CalVer.render(calVerPattern.value).value
)
}
// Automatically exposed globally.
override lazy val globalSettings: Seq[Setting[_]] = calVerDefaults
// Add the custom task.
override lazy val buildSettings: Seq[Setting[_]] = Seq(
calVerInfo := {
val log = Keys.streams.value.log
log.info(s"[CalVer] Version: ${calVer.value}")
log.info(s"[CalVer] Pattern: ${calVerPattern.value}")
}
)
}