summaryrefslogtreecommitdiff
path: root/cmd/btrfs-rec/inspect_lstrees.go
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@lukeshu.com>2022-12-26 22:02:13 -0700
committerLuke Shumaker <lukeshu@lukeshu.com>2022-12-26 23:55:42 -0700
commitd5737a0e71b17a97b82ae68e49acc41a08fcc0ad (patch)
tree7378523c12afd0636b78c08a1bfbd5d26bc97087 /cmd/btrfs-rec/inspect_lstrees.go
parent0bbcd2cadf8a6e1a277a68653ac2f7f95c63ba01 (diff)
cmd/btrfs-rec: Add a utility function for reading JSON files with progress
Diffstat (limited to 'cmd/btrfs-rec/inspect_lstrees.go')
-rw-r--r--cmd/btrfs-rec/inspect_lstrees.go12
1 files changed, 5 insertions, 7 deletions
diff --git a/cmd/btrfs-rec/inspect_lstrees.go b/cmd/btrfs-rec/inspect_lstrees.go
index 7f59eaa..e92c544 100644
--- a/cmd/btrfs-rec/inspect_lstrees.go
+++ b/cmd/btrfs-rec/inspect_lstrees.go
@@ -5,7 +5,6 @@
package main
import (
- "encoding/json"
"os"
"strconv"
"text/tabwriter"
@@ -36,15 +35,14 @@ func init() {
Args: cliutil.WrapPositionalArgs(cobra.NoArgs),
},
RunE: func(fs *btrfs.FS, cmd *cobra.Command, _ []string) error {
- var scanResults map[btrfsvol.DeviceID]btrfsinspect.ScanOneDeviceResult
+ ctx := cmd.Context()
+ var scanResults btrfsinspect.ScanDevicesResult
if scandevicesFilename != "" {
- scanResultsBytes, err := os.ReadFile(scandevicesFilename)
+ var err error
+ scanResults, err = readJSONFile[btrfsinspect.ScanDevicesResult](ctx, scandevicesFilename)
if err != nil {
return err
}
- if err := json.Unmarshal(scanResultsBytes, &scanResults); err != nil {
- return err
- }
}
var treeErrCnt int
@@ -65,7 +63,7 @@ func init() {
table.Flush()
}
visitedNodes := make(containers.Set[btrfsvol.LogicalAddr])
- btrfsutil.WalkAllTrees(cmd.Context(), fs, btrfsutil.WalkAllTreesHandler{
+ btrfsutil.WalkAllTrees(ctx, fs, btrfsutil.WalkAllTreesHandler{
PreTree: func(name string, treeID btrfsprim.ObjID) {
treeErrCnt = 0
treeItemCnt = make(map[btrfsitem.Type]int)