From 599bdd1269f4307b53d277f363219cb5615b04e6 Mon Sep 17 00:00:00 2001 From: Josh Bleecher Snyder Date: Sun, 3 Jan 2021 19:29:11 -0800 Subject: [PATCH] internal/cmd/avogen: write output file even when gofmt fails (#165) This makes it easier to debug avogen: when you emit invalid syntax, you can inspect the generated file to determine what went wrong, instead of having only gofmt's error to work with. --- internal/cmd/avogen/main.go | 9 +++++---- internal/gen/gen.go | 6 +++++- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/internal/cmd/avogen/main.go b/internal/cmd/avogen/main.go index 7562b18..8440f35 100644 --- a/internal/cmd/avogen/main.go +++ b/internal/cmd/avogen/main.go @@ -73,13 +73,14 @@ func main() { } // Generate output. - b, err := g.Generate(is) - if err != nil { - log.Fatal(err) - } + b, generr := g.Generate(is) // Write. if _, err := w.Write(b); err != nil { log.Fatal(err) } + + if generr != nil { + log.Fatal(generr) + } } diff --git a/internal/gen/gen.go b/internal/gen/gen.go index e33ff1a..6fbbcaf 100644 --- a/internal/gen/gen.go +++ b/internal/gen/gen.go @@ -30,6 +30,10 @@ func GoFmt(i Interface) Interface { if err != nil { return nil, err } - return format.Source(b) + formatted, err := format.Source(b) + if err != nil { + return b, err + } + return formatted, nil }) }