commit 50fb7fae59e0113ef5a484ee4ecc4dcbe7dda246
parent f751acbc9a508fac909f97460029065008db63c3
Author: Sean Enck <sean@ttypty.com>
Date: Tue, 13 Jan 2026 16:25:36 -0500
'conv' should not include this comma (check json output)
Diffstat:
3 files changed, 17 insertions(+), 12 deletions(-)
diff --git a/cmd/lb/tests/expected.log b/cmd/lb/tests/expected.log
@@ -185,47 +185,47 @@ algorithm: SHA1
period: 30
5ae472abqdekjqykoyxk7hvc2leklq5n
"test1/key1": {
- "checksum": "[00 00 00 00 cd 5p]",
+ "checksum": "[00 00 00 00 cd 5p]"
"modtime": "XXXX-XX-XX",
}
"test10/key1": {
- "checksum": "[00 00 00 00 cd bo]",
+ "checksum": "[00 00 00 00 cd bo]"
"modtime": "XXXX-XX-XX",
}
"test4/multiline": {
- "checksum": "[00 00 00 00 dd fn]",
+ "checksum": "[00 00 00 00 dd fn]"
"modtime": "XXXX-XX-XX",
}
"test5/multiline": {
- "checksum": "[00 00 00 00 cd fn]",
+ "checksum": "[00 00 00 00 cd fn]"
"modtime": "XXXX-XX-XX",
}
"test6/multiline": {
- "checksum": "[00 00 2d cn bo cp]",
+ "checksum": "[00 00 2d cn bo cp]"
"modtime": "XXXX-XX-XX",
}
"test7/deeper/root": {
- "checksum": "[00 00 00 00 7d cu]",
+ "checksum": "[00 00 00 00 7d cu]"
"modtime": "XXXX-XX-XX",
}
"test7/deeper/rooted": {
- "checksum": "[00 00 00 3d cn 3o]",
+ "checksum": "[00 00 00 3d cn 3o]"
"modtime": "XXXX-XX-XX",
}
"test8/unset": {
- "checksum": "[00 00 00 2d cn cp]",
+ "checksum": "[00 00 00 2d cn cp]"
"modtime": "XXXX-XX-XX",
}
"test9/key1/sub1": {
- "checksum": "[00 00 00 00 4d cp]",
+ "checksum": "[00 00 00 00 4d cp]"
"modtime": "XXXX-XX-XX",
}
"test9/key1/sub2": {
- "checksum": "[00 00 00 00 7d cp]",
+ "checksum": "[00 00 00 00 7d cp]"
"modtime": "XXXX-XX-XX",
}
"test9/key2/sub1": {
- "checksum": "[00 00 00 00 fd cp]",
+ "checksum": "[00 00 00 00 fd cp]"
"modtime": "XXXX-XX-XX",
}
removing
diff --git a/internal/app/conv.go b/internal/app/conv.go
@@ -75,7 +75,7 @@ func serialize(w io.Writer, tx *kdbx.Transaction, isJSON bool, filter string) er
if strings.TrimSpace(line) == "" {
continue
}
- fmt.Fprintf(w, "%s\n", strings.TrimPrefix(line, " "))
+ fmt.Fprintf(w, "%s\n", strings.TrimSuffix(strings.TrimPrefix(line, " "), ","))
}
}
printed = true
diff --git a/internal/app/json_test.go b/internal/app/json_test.go
@@ -2,6 +2,7 @@ package app_test
import (
"bytes"
+ "encoding/json"
"testing"
"github.com/enckse/lockbox/internal/app"
@@ -55,6 +56,10 @@ func TestJSON(t *testing.T) {
if m.buf.String() == "" || m.buf.String() == "{}\n" {
t.Error("no data")
}
+ var check any
+ if err := json.Unmarshal(m.buf.Bytes(), &check); err != nil {
+ t.Errorf("invalid json: %v", err)
+ }
m.buf = bytes.Buffer{}
m.args = []string{"tsest/test2/test1"}
if err := app.JSON(m); err != nil {