diff --git a/.scalafmt.conf b/.scalafmt.conf index c58131a..27b56a0 100644 --- a/.scalafmt.conf +++ b/.scalafmt.conf @@ -1,2 +1,3 @@ version=3.8.3 -maxColumn = 140 \ No newline at end of file +maxColumn=140 +dialect=scala212 \ No newline at end of file diff --git a/extra/src/main/scala/com/softwaremill/SbtSoftwareMillExtra.scala b/extra/src/main/scala/com/softwaremill/SbtSoftwareMillExtra.scala index 2eae542..40fe60d 100644 --- a/extra/src/main/scala/com/softwaremill/SbtSoftwareMillExtra.scala +++ b/extra/src/main/scala/com/softwaremill/SbtSoftwareMillExtra.scala @@ -3,6 +3,7 @@ package com.softwaremill import sbt._ import Keys._ import net.vonbuchholtz.sbt.dependencycheck.DependencyCheckPlugin +import java.net.URI object SbtSoftwareMillExtra extends AutoPlugin { override def requires = plugins.JvmPlugin @@ -19,7 +20,7 @@ object SbtSoftwareMillExtra extends AutoPlugin { ) lazy val dependencyCheckSettings = Seq( - DependencyCheckPlugin.autoImport.dependencyCheckCveUrlModified := Some(new URL("http://nvdmirror.sml.io/")), + DependencyCheckPlugin.autoImport.dependencyCheckCveUrlModified := Some(URI.create("http://nvdmirror.sml.io/").toURL()), DependencyCheckPlugin.autoImport.dependencyCheckCveUrlBase := Some("http://nvdmirror.sml.io/"), DependencyCheckPlugin.autoImport.dependencyCheckAssemblyAnalyzerEnabled := Some(false), DependencyCheckPlugin.autoImport.dependencyCheckFormat := "All" diff --git a/publish/src/main/scala/com/softwaremill/Publish.scala b/publish/src/main/scala/com/softwaremill/Publish.scala index 7bbc83e..36facc8 100644 --- a/publish/src/main/scala/com/softwaremill/Publish.scala +++ b/publish/src/main/scala/com/softwaremill/Publish.scala @@ -4,6 +4,7 @@ import sbt.Keys._ import sbt._ import sbtdynver.DynVerPlugin.autoImport.dynverTagPrefix import xerial.sbt.Sonatype.autoImport.{sonatypeProfileName, sonatypeCredentialHost} +import java.net.URI trait Publish { lazy val ossPublishSettings = Seq( @@ -18,7 +19,7 @@ trait Publish { id = "softwaremill", name = "SoftwareMill", email = "info@softwaremill.com", - url = new URL("https://softwaremill.com") + url = URI.create("https://softwaremill.com").toURL() ) ), updateDocs := UpdateVersionInDocs(sLog.value, organization.value, version.value), @@ -34,26 +35,26 @@ trait Publish { private val releaseCommand = Command.command("release") { state => var s = state s.log.info("Current version:") - s = Command.process("version", s) + s = processCommandOrThrow("version", s) val version = readNextVersion() val tagPrefix = Project.extract(s).getOpt(ThisBuild / dynverTagPrefix).getOrElse("v") val tag = tagPrefix + version - s = Command.process(s"""set ThisBuild/version := "$version"""", s) + s = processCommandOrThrow(s"""set ThisBuild/version := "$version"""", s) val (s2, files) = Project.extract(s).runTask(updateDocs, s) s = s2 s = addFilesToGit(s, files) s.log.info(s"\nDocs updated, git status:\n") - s = Command.process(s"git status", s) + s = processCommandOrThrow(s"git status", s) s.log.info(s"\n") - s = Command.process(s"""git commit -m "Release $version"""", s) + s = processCommandOrThrow(s"""git commit -m "Release $version"""", s) s.log.info(s"Tagging release as: $tag") - s = Command.process(s"git tag $tag", s) + s = processCommandOrThrow(s"git tag $tag", s) s = pushChanges(s) s @@ -68,16 +69,19 @@ trait Publish { private def addFilesToGit(state: State, fs: Seq[File]): State = fs.foldLeft(state) { case (s, f) => - Command.process(s"git add ${f.getAbsolutePath}", s) + processCommandOrThrow(s"git add ${f.getAbsolutePath}", s) } private def pushChanges(state: State): State = SimpleReader.readLine("Push changes? [y/n] ") match { case Some("y") => - val state2 = Command.process(s"git push", state) - Command.process(s"git push --tags", state2) + val state2 = processCommandOrThrow(s"git push", state) + processCommandOrThrow(s"git push --tags", state2) case _ => sys.error("Aborting, not pushing changes"); state } + + private def processCommandOrThrow(command: String, state: State): State = + Command.process(command, state, msg => throw new RuntimeException(msg)) } object Publish extends Publish