Skip to content

Commit d021b6b

Browse files
committed
pgp: further improve import error format
Looking more at this, it would actually be great if we would detect multi-line errors from GnuPG in `Import()`, `Decrypt()` and `Encrypt()` so that we can slightly improve the formatting of the errors with a newline seperator before the `gpg: ...\ngpg: ...` output. As this would likely increase readability. Signed-off-by: Hidde Beydals <hidde@hhh.computer>
1 parent d148ddf commit d021b6b

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed

pgp/keysource.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -132,17 +132,17 @@ func (d GnuPGHome) Import(armoredKey []byte) error {
132132
}
133133

134134
args := []string{"--batch", "--import"}
135-
_, stderrBuf, err := gpgExec(d.String(), args, bytes.NewReader(armoredKey))
135+
_, stderr, err := gpgExec(d.String(), args, bytes.NewReader(armoredKey))
136136
if err != nil {
137-
stderr := stderrBuf.String()
137+
stderrStr := strings.TrimSpace(stderr.String())
138138
errStr := err.Error()
139139
var sb strings.Builder
140140
sb.WriteString("failed to import armored key data into GnuPG keyring")
141-
if len(stderr) > 0 {
142-
fmt.Fprintf(&sb, ": %s", stderr)
141+
if len(stderrStr) > 0 {
143142
if len(errStr) > 0 {
144-
fmt.Fprintf(&sb, ": %s", errStr)
143+
fmt.Fprintf(&sb, " (%s)", errStr)
145144
}
145+
fmt.Fprintf(&sb, ": %s", stderrStr)
146146
} else if len(errStr) > 0 {
147147
fmt.Fprintf(&sb, ": %s", errStr)
148148
}

pgp/keysource_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ func TestGnuPGHome_Import(t *testing.T) {
6868

6969
err = gnuPGHome.Import([]byte("invalid armored data"))
7070
assert.Error(t, err)
71-
assert.ErrorContains(t, err, "gpg: no valid OpenPGP data found.\ngpg: Total number processed: 0\n: exit status 2")
71+
assert.ErrorContains(t, err, "(exit status 2): gpg: no valid OpenPGP data found.\ngpg: Total number processed: 0")
7272
assert.Error(t, GnuPGHome("").Import(b))
7373
}
7474

0 commit comments

Comments
 (0)