1
0
Fork 0
mirror of https://github.com/ethauvin/kobalt.git synced 2025-04-25 07:57:12 -07:00

Added support for configuring gpg's passphrase, key id and secret key ring location via local.properties.

This commit is contained in:
Erik C. Thauvin 2017-05-05 15:46:13 -07:00
parent f43c186da1
commit 3b56122f92

View file

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