From 5cdcc022dfb6e59d4c81213486b5ae2f44b58436 Mon Sep 17 00:00:00 2001 From: Pat Garrity Date: Sun, 19 May 2024 12:49:31 -0500 Subject: [PATCH] Updated to support file output. --- project/build.properties | 2 +- src/main/scala/gs/CalVerKeys.scala | 13 +++++++++++++ src/main/scala/gs/CalVerPlugin.scala | 15 ++++++++++++++- 3 files changed, 28 insertions(+), 2 deletions(-) diff --git a/project/build.properties b/project/build.properties index 04267b1..081fdbb 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1 +1 @@ -sbt.version=1.9.9 +sbt.version=1.10.0 diff --git a/src/main/scala/gs/CalVerKeys.scala b/src/main/scala/gs/CalVerKeys.scala index 7238dc7..f24a67e 100644 --- a/src/main/scala/gs/CalVerKeys.scala +++ b/src/main/scala/gs/CalVerKeys.scala @@ -42,4 +42,17 @@ object CalVerKeys { "Dump the calculated version information." ) + /** SBT Setting that defines the filename for dumping the calculated CalVer to + * a file. + */ + lazy val calVerOutputFile = settingKey[Option[String]]( + "Name of the file where the calculated SemVer will be stored (if requested)." + ) + + /** Task which writes the calculated CalVer to a file. + */ + lazy val calVerWriteVersionToFile = taskKey[Unit]( + "Write the calculated CalVer to a file." + ) + } diff --git a/src/main/scala/gs/CalVerPlugin.scala b/src/main/scala/gs/CalVerPlugin.scala index a017de3..e2edb0f 100644 --- a/src/main/scala/gs/CalVerPlugin.scala +++ b/src/main/scala/gs/CalVerPlugin.scala @@ -1,5 +1,8 @@ package gs +import java.nio.charset.StandardCharsets +import java.nio.file.Files +import java.nio.file.Paths import sbt._ object CalVerPlugin extends AutoPlugin { @@ -9,10 +12,13 @@ object CalVerPlugin extends AutoPlugin { import autoImport._ + val DefaultOutputFile: String = ".version" + lazy val calVerDefaults: Seq[Setting[_]] = Seq( calVerReleasePattern := Some(CalVer.Defaults.ReleasePattern), - calVerPreReleasePattern := Some(CalVer.Defaults.PreReleasePattern) + calVerPreReleasePattern := Some(CalVer.Defaults.PreReleasePattern), + calVerOutputFile := Some(DefaultOutputFile) ) override lazy val projectSettings: Seq[Setting[_]] = { @@ -32,6 +38,13 @@ object CalVerPlugin extends AutoPlugin { val log = Keys.streams.value.log log.info(s"[CalVer] Version: ${calVer.value}") log.info(s"[CalVer] Pattern: ${calVerPattern.value}") + }, + calVerWriteVersionToFile := { + val outputFile = calVerOutputFile.value.getOrElse(DefaultOutputFile) + Files.write( + Paths.get(outputFile), + calVer.value.getBytes(StandardCharsets.UTF_8) + ) } ) }