pekko/project/TimeStampede.scala
Martynas Mickevičius 22334da2a1 =pro upgrade to latest sbt and add first auto plugins
* RootSettings plugin contains settings for root project
* other auto plugins that are meant only for root project depend on RootSettings
* other auto plugins that are meant for every project are enabled by default reducing boilerplate
2014-11-30 15:34:59 +02:00

34 lines
864 B
Scala

/**
* Copyright (C) 2009-2014 Typesafe Inc. <http://www.typesafe.com>
*/
package akka
import sbt._
import sbt.Keys._
object TimeStampede extends AutoPlugin {
override def requires = RootSettings
override def trigger = allRequirements
override lazy val projectSettings = Seq(
commands += stampVersion
)
final val Snapshot = "-SNAPSHOT"
def stampVersion = Command.command("stampVersion") { state =>
val extracted = Project.extract(state)
extracted.append(List(version in ThisBuild ~= stamp), state)
}
def stamp(version: String): String = {
if (version endsWith Snapshot) (version stripSuffix Snapshot) + "-" + timestamp(System.currentTimeMillis)
else version
}
def timestamp(time: Long): String = {
val format = new java.text.SimpleDateFormat("yyyyMMdd-HHmmss")
format.format(new java.util.Date(time))
}
}