From c971b863a0a1f9feb75f31657729db3a03da114c Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Sun, 1 Jan 2023 19:46:28 -0700 Subject: cmd/btrfs-rec: Add a type-agnostic utility function to write JSON out --- cmd/btrfs-rec/inspect_rebuildnodes.go | 27 +++++---------------------- 1 file changed, 5 insertions(+), 22 deletions(-) (limited to 'cmd/btrfs-rec/inspect_rebuildnodes.go') diff --git a/cmd/btrfs-rec/inspect_rebuildnodes.go b/cmd/btrfs-rec/inspect_rebuildnodes.go index 0f3d60e..e61e6d2 100644 --- a/cmd/btrfs-rec/inspect_rebuildnodes.go +++ b/cmd/btrfs-rec/inspect_rebuildnodes.go @@ -1,12 +1,10 @@ -// Copyright (C) 2022 Luke Shumaker +// Copyright (C) 2022-2023 Luke Shumaker // // SPDX-License-Identifier: GPL-2.0-or-later package main import ( - "bufio" - "io" "os" "git.lukeshu.com/go/lowmemjson" @@ -15,11 +13,8 @@ import ( "github.com/spf13/cobra" "git.lukeshu.com/btrfs-progs-ng/lib/btrfs" - "git.lukeshu.com/btrfs-progs-ng/lib/btrfs/btrfsprim" - "git.lukeshu.com/btrfs-progs-ng/lib/btrfs/btrfsvol" "git.lukeshu.com/btrfs-progs-ng/lib/btrfsprogs/btrfsinspect" "git.lukeshu.com/btrfs-progs-ng/lib/btrfsprogs/btrfsinspect/rebuildnodes" - "git.lukeshu.com/btrfs-progs-ng/lib/containers" ) func init() { @@ -44,7 +39,10 @@ func init() { } dlog.Info(ctx, "Writing re-built nodes to stdout...") - if err := writeNodesJSON(os.Stdout, rebuiltNodes); err != nil { + if err := writeJSONFile(os.Stdout, rebuiltNodes, lowmemjson.ReEncoder{ + Indent: "\t", + ForceTrailingNewlines: true, + }); err != nil { return err } dlog.Info(ctx, "... done writing") @@ -53,18 +51,3 @@ func init() { }, }) } - -func writeNodesJSON(w io.Writer, rebuiltNodes map[btrfsprim.ObjID]containers.Set[btrfsvol.LogicalAddr]) (err error) { - buffer := bufio.NewWriter(w) - defer func() { - if _err := buffer.Flush(); err == nil && _err != nil { - err = _err - } - }() - return lowmemjson.Encode(&lowmemjson.ReEncoder{ - Out: buffer, - - Indent: "\t", - ForceTrailingNewlines: true, - }, rebuiltNodes) -} -- cgit v1.2.3-2-g168b