From 9db37ecca9340f7a997866d230e5d5a33d10f064 Mon Sep 17 00:00:00 2001 From: Micael Malta Date: Mon, 27 May 2024 12:26:35 -0400 Subject: [PATCH] This fixes set-exit-status when using `./...` https://github.com/incu6us/goimports-reviser/issues/93 --- main.go | 3 +++ reviser/dir.go | 8 ++++++++ 2 files changed, 11 insertions(+) diff --git a/main.go b/main.go index b376175..659104e 100644 --- a/main.go +++ b/main.go @@ -275,6 +275,9 @@ func main() { log.Fatalf("Failed to find unformatted files %s: %+v\n", originPath, err) } fmt.Printf("%s\n", unformattedFiles.String()) + if *setExitStatus && unformattedFiles != nil { + os.Exit(1) + } return } err := reviser.NewSourceDir(originProjectName, originPath, *isRecursive, excludes).Fix(options...) diff --git a/reviser/dir.go b/reviser/dir.go index 69275b2..0fc2776 100644 --- a/reviser/dir.go +++ b/reviser/dir.go @@ -121,6 +121,10 @@ func (d *SourceDir) Find(options ...SourceFileOption) (*UnformattedCollection, e return nil, fmt.Errorf("failed to walk dif: %w", err) } + if len(badFormattedCollection) == 0 { + return nil, nil + } + return newUnformattedCollection(badFormattedCollection), nil } @@ -176,6 +180,10 @@ func (c *UnformattedCollection) List() []string { } func (c *UnformattedCollection) String() string { + if c == nil { + return "" + } + var builder strings.Builder for i, file := range c.list { builder.WriteString(file)