From 3b56122f92d73a11774b9739fd0aae7265a5e9c1 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Fri, 5 May 2017 15:46:13 -0700 Subject: [PATCH] Added support for configuring gpg's passphrase, key id and secret key ring location via local.properties. --- .../main/kotlin/com/beust/kobalt/maven/Gpg.kt | 27 +++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/maven/Gpg.kt b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/maven/Gpg.kt index 27eeee83..f4b796e1 100644 --- a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/maven/Gpg.kt +++ b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/maven/Gpg.kt @@ -1,16 +1,18 @@ package com.beust.kobalt.maven import com.beust.kobalt.OperatingSystem +import com.beust.kobalt.misc.LocalProperties import com.beust.kobalt.misc.error import com.beust.kobalt.misc.kobaltLog import com.beust.kobalt.misc.warn +import com.google.inject.Inject import com.google.inject.Singleton import java.io.BufferedReader import java.io.File import java.io.InputStreamReader @Singleton -class Gpg { +class Gpg @Inject constructor(val localProperties: LocalProperties) { val COMMANDS = listOf("gpg", "gpg2") fun findGpgCommand() : String? { @@ -42,9 +44,30 @@ class Gpg { ascFile.delete() val allArgs = arrayListOf() allArgs.add(gpg) + + val pwd = localProperties.getNoThrows("gpg.password") + if (! pwd.isNullOrBlank()) { + allArgs.add("--passphrase") + allArgs.add(pwd) + allArgs.add("--batch") + allArgs.add("--yes") + } + + val keyId = localProperties.getNoThrows("gpg.keyId") + if (! keyId.isNullOrBlank()) { + allArgs.add("--local-user") + allArgs.add(keyId) + } + + val keyRing = localProperties.getNoThrows("gpg.secretKeyRingFile") + if (! keyRing.isNullOrBlank()) { + allArgs.add("--secret-keyring") + allArgs.add("\"$keyRing\"") + } + allArgs.add("-ab") allArgs.add(file.absolutePath) - + val pb = ProcessBuilder(allArgs) pb.directory(directory) kobaltLog(2, "Signing file: " + allArgs.joinToString(" "))