diff options
author | Olivier Mélois <baccata64@gmail.com> | 2018-05-23 16:25:38 +0100 |
---|---|---|
committer | Nikolay Tatarinov <5min4eq.unity@gmail.com> | 2018-05-23 18:25:38 +0300 |
commit | ab2a8b3b9eddbdc4212e6f0e2a4a0adea1f3caee (patch) | |
tree | d2eee27ad9bd08e0af99c31491f608507256168d /scalalib/src/mill/scalalib/publish/SonatypePublisher.scala | |
parent | 22e19245e05a43b645c8a65cc9b1266df3a85579 (diff) | |
download | mill-ab2a8b3b9eddbdc4212e6f0e2a4a0adea1f3caee.tar.gz mill-ab2a8b3b9eddbdc4212e6f0e2a4a0adea1f3caee.tar.bz2 mill-ab2a8b3b9eddbdc4212e6f0e2a4a0adea1f3caee.zip |
Solves #345 : optional signing (#346)
* Solves 345 : optional signing
* Made gpgPassphrase optional for publishing
* Added a flag to remove signing of published artifacts altogether
* Handle optional value using null as default param
better than using empty string as default param.
Diffstat (limited to 'scalalib/src/mill/scalalib/publish/SonatypePublisher.scala')
-rw-r--r-- | scalalib/src/mill/scalalib/publish/SonatypePublisher.scala | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/scalalib/src/mill/scalalib/publish/SonatypePublisher.scala b/scalalib/src/mill/scalalib/publish/SonatypePublisher.scala index 4f8f42b8..47ec8dbf 100644 --- a/scalalib/src/mill/scalalib/publish/SonatypePublisher.scala +++ b/scalalib/src/mill/scalalib/publish/SonatypePublisher.scala @@ -11,7 +11,8 @@ import scalaj.http.HttpResponse class SonatypePublisher(uri: String, snapshotUri: String, credentials: String, - gpgPassphrase: String, + gpgPassphrase: Option[String], + signed: Boolean, log: Logger) { private val api = new SonatypeHttpApi(uri, credentials) @@ -29,11 +30,11 @@ class SonatypePublisher(uri: String, ).mkString("/") val fileMapping = fileMapping0.map{ case (file, name) => (file, publishPath+"/"+name) } - val signedArtifacts = fileMapping ++ fileMapping.map { + val signedArtifacts = if (signed) fileMapping.map { case (file, name) => poorMansSign(file, gpgPassphrase) -> s"$name.asc" - } + } else Seq() - artifact -> signedArtifacts.flatMap { + artifact -> (fileMapping ++ signedArtifacts).flatMap { case (file, name) => val content = read.bytes(file) @@ -135,10 +136,15 @@ class SonatypePublisher(uri: String, } // http://central.sonatype.org/pages/working-with-pgp-signatures.html#signing-a-file - private def poorMansSign(file: Path, passphrase: String): Path = { + private def poorMansSign(file: Path, maybePassphrase: Option[String]): Path = { val fileName = file.toString import ammonite.ops.ImplicitWd._ - %("gpg", "--passphrase", passphrase, "--batch", "--yes", "-a", "-b", fileName) + maybePassphrase match { + case Some(passphrase) => + %("gpg", "--passphrase", passphrase, "--batch", "--yes", "-a", "-b", fileName) + case None => + %("gpg", "--batch", "--yes", "-a", "-b", fileName) + } Path(fileName + ".asc") } |