commit 9ff8e3c72b3a9081a76557cdc08300be2dd7f30c
parent 3a20266324068de66972ca077bc95b35d92e6443
Author: Sean Enck <sean@ttypty.com>
Date: Thu, 30 Mar 2023 20:53:31 -0400
improved json output
Diffstat:
2 files changed, 20 insertions(+), 16 deletions(-)
diff --git a/internal/app/conv.go b/internal/app/conv.go
@@ -1,11 +1,11 @@
package app
import (
- "bytes"
"encoding/json"
"errors"
"fmt"
"io"
+ "strings"
"github.com/enckse/lockbox/internal/backend"
)
@@ -39,12 +39,19 @@ func serialize(w io.Writer, tx *backend.Transaction) error {
if idx > 0 {
fmt.Fprintf(w, ",\n")
}
- var buf bytes.Buffer
- if err := json.Indent(&buf, []byte(item.Value), " ", " "); err != nil {
+ obj := backend.JSON{}
+ if err := json.Unmarshal([]byte(item.Value), &obj); err != nil {
return err
}
- fmt.Fprintf(w, " \"%s\": %s\n", item.Path, buf.String())
+ b, err := json.MarshalIndent(map[string]backend.JSON{item.Path: obj}, "", " ")
+ if err != nil {
+ return err
+ }
+ trimmed := strings.TrimSpace(string(b))
+ trimmed = strings.TrimPrefix(trimmed, "{")
+ trimmed = strings.TrimSuffix(trimmed, "}")
+ fmt.Fprintf(w, " %s", strings.TrimSpace(trimmed))
}
- fmt.Fprintf(w, "}")
+ fmt.Fprintf(w, "\n}\n")
return nil
}
diff --git a/tests/expected.log b/tests/expected.log
@@ -16,18 +16,17 @@ keys2/k/three
"key/a/one": {
"modtime": "XXXX-XX-XX",
"hash": "ee26b0dd4af7e749aa1a8ee3c10ae9923f618980772e473f8819a5d4940e0db27ac185f8a0e1d5f84f88bc887fd67b143732c304cc5fa9ad8e6f57f50028a8ff"
- }
-,
+ },
"keys/k/one2": {
"modtime": "XXXX-XX-XX",
"hash": "6d201beeefb589b08ef0672dac82353d0cbd9ad99e1642c83a1601f3d647bcca003257b5e8f31bdc1d73fbec84fb085c79d6e2677b7ff927e823a54e789140d9"
- }
-,
+ },
"keys2/k/three": {
"modtime": "XXXX-XX-XX",
"hash": "132ab0244293c495a027cec12d0050598616daca888449920fc652719be0987830827d069ef78cc613e348de37c9b592d3406e2fb8d99a6961bf0c58da8a334f"
}
}
+
test2
test3
test4
@@ -44,23 +43,21 @@ XXXXXX
"key/a/one": {
"modtime": "XXXX-XX-XX",
"hash": "ee26b0dd4af7e749aa1a8ee3c10ae9923f618980772e473f8819a5d4940e0db27ac185f8a0e1d5f84f88bc887fd67b143732c304cc5fa9ad8e6f57f50028a8ff"
- }
-,
+ },
"keys/k/one2": {
"modtime": "XXXX-XX-XX",
"hash": "6d201beeefb589b08ef0672dac82353d0cbd9ad99e1642c83a1601f3d647bcca003257b5e8f31bdc1d73fbec84fb085c79d6e2677b7ff927e823a54e789140d9"
- }
-,
+ },
"keys2/k/three": {
"modtime": "XXXX-XX-XX",
"hash": "132ab0244293c495a027cec12d0050598616daca888449920fc652719be0987830827d069ef78cc613e348de37c9b592d3406e2fb8d99a6961bf0c58da8a334f"
- }
-,
+ },
"test/k/totp": {
"modtime": "XXXX-XX-XX",
"hash": "7ef183065ba70aaa417b87ea0a96b7e550a938a52440c640a07537f7794d8a89e50078eca6a7cbcfacabd97a2db06d11e82ddf7556ca909c4df9fc0d006013b1"
}
-}delete entry? (y/N)
+}
+delete entry? (y/N)
delete entry? (y/N)
delete entry? (y/N) unable to remove: no entities given