From 45f676e42c2e136e7d337f15762a50da2ae8c633 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Sun, 1 Jan 2023 17:45:11 -0700 Subject: lint: Tighten up the nolintlint configuration --- cmd/btrfs-rec/main.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'cmd/btrfs-rec') diff --git a/cmd/btrfs-rec/main.go b/cmd/btrfs-rec/main.go index 13ae886..3f662bb 100644 --- a/cmd/btrfs-rec/main.go +++ b/cmd/btrfs-rec/main.go @@ -1,4 +1,4 @@ -// Copyright (C) 2022 Luke Shumaker +// Copyright (C) 2022-2023 Luke Shumaker // // SPDX-License-Identifier: GPL-2.0-or-later @@ -43,7 +43,7 @@ func main() { SilenceErrors: true, // main() will handle this after .ExecuteContext() returns SilenceUsage: true, // our FlagErrorFunc will handle it - CompletionOptions: cobra.CompletionOptions{ //nolint:exhaustivestruct + CompletionOptions: cobra.CompletionOptions{ DisableDefaultCmd: true, }, } -- cgit v1.2.3-2-g168b From c307e7048da3c02e1e540eab227def7fec7340cc Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Sun, 1 Jan 2023 19:27:49 -0700 Subject: lint: Turn on gocritic --- cmd/btrfs-rec/inspect_lstrees.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'cmd/btrfs-rec') diff --git a/cmd/btrfs-rec/inspect_lstrees.go b/cmd/btrfs-rec/inspect_lstrees.go index e92c544..a6d86eb 100644 --- a/cmd/btrfs-rec/inspect_lstrees.go +++ b/cmd/btrfs-rec/inspect_lstrees.go @@ -1,4 +1,4 @@ -// Copyright (C) 2022 Luke Shumaker +// Copyright (C) 2022-2023 Luke Shumaker // // SPDX-License-Identifier: GPL-2.0-or-later @@ -79,12 +79,12 @@ func init() { }, Item: func(_ btrfstree.TreePath, item btrfstree.Item) error { typ := item.Key.ItemType - treeItemCnt[typ] = treeItemCnt[typ] + 1 + treeItemCnt[typ]++ return nil }, BadItem: func(_ btrfstree.TreePath, item btrfstree.Item) error { typ := item.Key.ItemType - treeItemCnt[typ] = treeItemCnt[typ] + 1 + treeItemCnt[typ]++ return nil }, }, @@ -113,7 +113,7 @@ func init() { } for _, item := range node.Data.BodyLeaf { typ := item.Key.ItemType - treeItemCnt[typ] = treeItemCnt[typ] + 1 + treeItemCnt[typ]++ } } } -- cgit v1.2.3-2-g168b 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_rebuildmappings.go | 26 ++++++-------------------- cmd/btrfs-rec/inspect_rebuildnodes.go | 27 +++++---------------------- cmd/btrfs-rec/inspect_scandevices.go | 26 ++++++-------------------- cmd/btrfs-rec/util.go | 13 ++++++++++++- 4 files changed, 29 insertions(+), 63 deletions(-) (limited to 'cmd/btrfs-rec') diff --git a/cmd/btrfs-rec/inspect_rebuildmappings.go b/cmd/btrfs-rec/inspect_rebuildmappings.go index da7d12e..b805fc3 100644 --- a/cmd/btrfs-rec/inspect_rebuildmappings.go +++ b/cmd/btrfs-rec/inspect_rebuildmappings.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" @@ -49,7 +47,11 @@ func init() { } dlog.Infof(ctx, "Writing reconstructed mappings to stdout...") - if err := writeMappingsJSON(os.Stdout, fs); err != nil { + if err := writeJSONFile(os.Stdout, fs, lowmemjson.ReEncoder{ + Indent: "\t", + ForceTrailingNewlines: true, + CompactIfUnder: 120, + }); err != nil { return err } dlog.Info(ctx, "... done writing") @@ -58,19 +60,3 @@ func init() { }, }) } - -func writeMappingsJSON(w io.Writer, fs *btrfs.FS) (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, - CompactIfUnder: 120, - }, fs.LV.Mappings()) -} 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) -} diff --git a/cmd/btrfs-rec/inspect_scandevices.go b/cmd/btrfs-rec/inspect_scandevices.go index 7235e45..bca1b13 100644 --- a/cmd/btrfs-rec/inspect_scandevices.go +++ b/cmd/btrfs-rec/inspect_scandevices.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" @@ -33,7 +31,11 @@ func init() { } dlog.Info(ctx, "Writing scan results to stdout...") - if err := writeScanResults(os.Stdout, results); err != nil { + if err := writeJSONFile(os.Stdout, results, lowmemjson.ReEncoder{ + Indent: "\t", + ForceTrailingNewlines: true, + CompactIfUnder: 16, + }); err != nil { return err } dlog.Info(ctx, "... done writing") @@ -42,19 +44,3 @@ func init() { }, }) } - -func writeScanResults(w io.Writer, results btrfsinspect.ScanDevicesResult) (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, - CompactIfUnder: 16, - }, results) -} diff --git a/cmd/btrfs-rec/util.go b/cmd/btrfs-rec/util.go index adfe97e..ed1b75d 100644 --- a/cmd/btrfs-rec/util.go +++ b/cmd/btrfs-rec/util.go @@ -1,4 +1,4 @@ -// Copyright (C) 2022 Luke Shumaker +// Copyright (C) 2022-2023 Luke Shumaker // // SPDX-License-Identifier: GPL-2.0-or-later @@ -81,3 +81,14 @@ func readJSONFile[T any](ctx context.Context, filename string) (T, error) { _ = buf.Close() return ret, nil } + +func writeJSONFile(w io.Writer, obj any, cfg lowmemjson.ReEncoder) (err error) { + buffer := bufio.NewWriter(w) + defer func() { + if _err := buffer.Flush(); err == nil && _err != nil { + err = _err + } + }() + cfg.Out = buffer + return lowmemjson.Encode(&cfg, obj) +} -- cgit v1.2.3-2-g168b From b261c2a4f5f028c9d83cef208ccc7d829f841bad Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Sat, 31 Dec 2022 11:59:09 -0700 Subject: tree-wide: Annotate values that I might want to be tuning --- cmd/btrfs-rec/util.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'cmd/btrfs-rec') diff --git a/cmd/btrfs-rec/util.go b/cmd/btrfs-rec/util.go index ed1b75d..ffc03cc 100644 --- a/cmd/btrfs-rec/util.go +++ b/cmd/btrfs-rec/util.go @@ -34,7 +34,7 @@ func newRuneScanner(ctx context.Context, fh *os.File) (*runeScanner, error) { progress: textui.Portion[int64]{ D: fi.Size(), }, - progressWriter: textui.NewProgress[textui.Portion[int64]](ctx, dlog.LogLevelInfo, 1*time.Second), + progressWriter: textui.NewProgress[textui.Portion[int64]](ctx, dlog.LogLevelInfo, textui.Tunable(1*time.Second)), reader: bufio.NewReader(fh), closer: fh, } -- cgit v1.2.3-2-g168b From 97fa22c161056c289a9978f20e3fb6b05d779a23 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Sun, 1 Jan 2023 20:48:22 -0700 Subject: lint: Turn on gomnd --- cmd/btrfs-rec/inspect_lstrees.go | 2 +- cmd/btrfs-rec/inspect_rebuildmappings.go | 2 +- cmd/btrfs-rec/inspect_scandevices.go | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to 'cmd/btrfs-rec') diff --git a/cmd/btrfs-rec/inspect_lstrees.go b/cmd/btrfs-rec/inspect_lstrees.go index a6d86eb..0f70cd1 100644 --- a/cmd/btrfs-rec/inspect_lstrees.go +++ b/cmd/btrfs-rec/inspect_lstrees.go @@ -54,7 +54,7 @@ func init() { } numWidth := len(strconv.Itoa(slices.Max(treeErrCnt, totalItems))) - table := tabwriter.NewWriter(os.Stdout, 0, 8, 2, ' ', 0) + table := tabwriter.NewWriter(os.Stdout, 0, 8, 2, ' ', 0) //nolint:gomnd // This is what looks Nice. textui.Fprintf(table, " errors\t% *s\n", numWidth, strconv.Itoa(treeErrCnt)) for _, typ := range maps.SortedKeys(treeItemCnt) { textui.Fprintf(table, " %v items\t% *s\n", typ, numWidth, strconv.Itoa(treeItemCnt[typ])) diff --git a/cmd/btrfs-rec/inspect_rebuildmappings.go b/cmd/btrfs-rec/inspect_rebuildmappings.go index b805fc3..4555e58 100644 --- a/cmd/btrfs-rec/inspect_rebuildmappings.go +++ b/cmd/btrfs-rec/inspect_rebuildmappings.go @@ -50,7 +50,7 @@ func init() { if err := writeJSONFile(os.Stdout, fs, lowmemjson.ReEncoder{ Indent: "\t", ForceTrailingNewlines: true, - CompactIfUnder: 120, + CompactIfUnder: 120, //nolint:gomnd // This is what looks Nice. }); err != nil { return err } diff --git a/cmd/btrfs-rec/inspect_scandevices.go b/cmd/btrfs-rec/inspect_scandevices.go index bca1b13..410fa4f 100644 --- a/cmd/btrfs-rec/inspect_scandevices.go +++ b/cmd/btrfs-rec/inspect_scandevices.go @@ -34,7 +34,7 @@ func init() { if err := writeJSONFile(os.Stdout, results, lowmemjson.ReEncoder{ Indent: "\t", ForceTrailingNewlines: true, - CompactIfUnder: 16, + CompactIfUnder: 16, //nolint:gomnd // This is what looks Nice. }); err != nil { return err } -- cgit v1.2.3-2-g168b From 6912dad34102be1ddea5f3b7710abd0cc8922d20 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Sun, 1 Jan 2023 22:13:14 -0700 Subject: lint: Turn on stylecheck --- cmd/btrfs-rec/main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'cmd/btrfs-rec') diff --git a/cmd/btrfs-rec/main.go b/cmd/btrfs-rec/main.go index 3f662bb..d9ab485 100644 --- a/cmd/btrfs-rec/main.go +++ b/cmd/btrfs-rec/main.go @@ -62,7 +62,7 @@ func main() { panic(err) } - var openFlag int = os.O_RDONLY + openFlag := os.O_RDONLY argparserInspect := &cobra.Command{ Use: "inspect {[flags]|SUBCOMMAND}", -- cgit v1.2.3-2-g168b From 6e1a9fbb1e9a943e04902ed3a4958f6821e39456 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Sun, 1 Jan 2023 22:41:34 -0700 Subject: lint: Set exclude-use-default=false --- cmd/btrfs-rec/inspect_lsfiles.go | 8 ++++++-- cmd/btrfs-rec/inspect_lstrees.go | 2 +- cmd/btrfs-rec/inspect_spewitems.go | 6 +++--- 3 files changed, 10 insertions(+), 6 deletions(-) (limited to 'cmd/btrfs-rec') diff --git a/cmd/btrfs-rec/inspect_lsfiles.go b/cmd/btrfs-rec/inspect_lsfiles.go index 502d91d..395f60a 100644 --- a/cmd/btrfs-rec/inspect_lsfiles.go +++ b/cmd/btrfs-rec/inspect_lsfiles.go @@ -1,4 +1,4 @@ -// Copyright (C) 2022 Luke Shumaker +// Copyright (C) 2022-2023 Luke Shumaker // // SPDX-License-Identifier: GPL-2.0-or-later @@ -34,7 +34,11 @@ func init() { }, RunE: func(fs *btrfs.FS, cmd *cobra.Command, _ []string) (err error) { out := bufio.NewWriter(os.Stdout) - defer out.Flush() + defer func() { + if _err := out.Flush(); _err != nil && err == nil { + err = _err + } + }() defer func() { if r := derror.PanicToError(recover()); r != nil { textui.Fprintf(out, "\n\n%+v\n", r) diff --git a/cmd/btrfs-rec/inspect_lstrees.go b/cmd/btrfs-rec/inspect_lstrees.go index 0f70cd1..f74956a 100644 --- a/cmd/btrfs-rec/inspect_lstrees.go +++ b/cmd/btrfs-rec/inspect_lstrees.go @@ -60,7 +60,7 @@ func init() { textui.Fprintf(table, " %v items\t% *s\n", typ, numWidth, strconv.Itoa(treeItemCnt[typ])) } textui.Fprintf(table, " total items\t% *s\n", numWidth, strconv.Itoa(totalItems)) - table.Flush() + _ = table.Flush() } visitedNodes := make(containers.Set[btrfsvol.LogicalAddr]) btrfsutil.WalkAllTrees(ctx, fs, btrfsutil.WalkAllTreesHandler{ diff --git a/cmd/btrfs-rec/inspect_spewitems.go b/cmd/btrfs-rec/inspect_spewitems.go index 8d71797..3b79e8b 100644 --- a/cmd/btrfs-rec/inspect_spewitems.go +++ b/cmd/btrfs-rec/inspect_spewitems.go @@ -1,4 +1,4 @@ -// Copyright (C) 2022 Luke Shumaker +// Copyright (C) 2022-2023 Luke Shumaker // // SPDX-License-Identifier: GPL-2.0-or-later @@ -39,13 +39,13 @@ func init() { Item: func(path btrfstree.TreePath, item btrfstree.Item) error { textui.Fprintf(os.Stdout, "%s = ", path) spew.Dump(item) - os.Stdout.WriteString("\n") + _, _ = os.Stdout.WriteString("\n") return nil }, BadItem: func(path btrfstree.TreePath, item btrfstree.Item) error { textui.Fprintf(os.Stdout, "%s = ", path) spew.Dump(item) - os.Stdout.WriteString("\n") + _, _ = os.Stdout.WriteString("\n") return nil }, }, -- cgit v1.2.3-2-g168b