aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/osutil
diff options
context:
space:
mode:
authorAleksandr Nogikh <nogikh@google.com>2024-12-17 15:41:18 +0100
committerAleksandr Nogikh <nogikh@google.com>2024-12-20 15:38:43 +0000
commit1ac6aa80f6bb0b4deb3de864f2e1dc7b26a8ab4e (patch)
tree7bfedf72054fef3a696cbd1742edfb38df8c3878 /pkg/osutil
parentde01e7268bab1e7a0f9752942e38330d0509268f (diff)
pkg/osutil: add a WriteJSON helper
Diffstat (limited to 'pkg/osutil')
-rw-r--r--pkg/osutil/osutil.go9
1 files changed, 9 insertions, 0 deletions
diff --git a/pkg/osutil/osutil.go b/pkg/osutil/osutil.go
index 3c98a7f68..f4a3cac18 100644
--- a/pkg/osutil/osutil.go
+++ b/pkg/osutil/osutil.go
@@ -7,6 +7,7 @@ import (
"bytes"
"compress/gzip"
"context"
+ "encoding/json"
"errors"
"fmt"
"io"
@@ -279,6 +280,14 @@ func WriteFile(filename string, data []byte) error {
return os.WriteFile(filename, data, DefaultFilePerm)
}
+func WriteJSON[T any](filename string, obj T) error {
+ jsonData, err := json.MarshalIndent(obj, "", "\t")
+ if err != nil {
+ return fmt.Errorf("failed to marshal: %w", err)
+ }
+ return WriteFile(filename, jsonData)
+}
+
func WriteGzipStream(filename string, reader io.Reader) error {
f, err := os.Create(filename)
if err != nil {