45 lines
1.2 KiB
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}")
|
|
}
|
|
)
|
|
|
|
}
|