aboutsummaryrefslogtreecommitdiffstats
path: root/pkg
diff options
context:
space:
mode:
Diffstat (limited to 'pkg')
-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 {