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(" "))