diff --git a/pkg/commands/run.go b/pkg/commands/run.go index c255e24642a4..f5421e702eee 100644 --- a/pkg/commands/run.go +++ b/pkg/commands/run.go @@ -313,8 +313,15 @@ func fixSlicesFlags(fs *pflag.FlagSet) { return } + var safe []string + for _, v := range s { + // add quotes to escape comma because spf13/pflag use a CSV parser: + // https://github.com/spf13/pflag/blob/85dd5c8bc61cfa382fecd072378089d4e856579d/string_slice.go#L43 + safe = append(safe, `"`+v+`"`) + } + // calling Set sets Changed to true: next Set calls will append, not overwrite - _ = f.Value.Set(strings.Join(s, ",")) + _ = f.Value.Set(strings.Join(safe, ",")) }) } diff --git a/pkg/config/reader.go b/pkg/config/reader.go index 00722ba6366d..6e97277daa2a 100644 --- a/pkg/config/reader.go +++ b/pkg/config/reader.go @@ -7,7 +7,7 @@ import ( "path/filepath" "strings" - homedir "github.com/mitchellh/go-homedir" + "github.com/mitchellh/go-homedir" "github.com/spf13/viper" "github.com/golangci/golangci-lint/pkg/fsutils" diff --git a/pkg/lint/runner.go b/pkg/lint/runner.go index 26611c05ae63..c492f558020f 100644 --- a/pkg/lint/runner.go +++ b/pkg/lint/runner.go @@ -237,9 +237,9 @@ func (r *Runner) processIssues(issues []result.Issue, sw *timeutils.Stopwatch, s func getExcludeProcessor(cfg *config.Issues) processors.Processor { var excludeTotalPattern string - excludeGlobalPatterns := cfg.ExcludePatterns - if len(excludeGlobalPatterns) != 0 { - excludeTotalPattern = fmt.Sprintf("(%s)", strings.Join(excludeGlobalPatterns, "|")) + + if len(cfg.ExcludePatterns) != 0 { + excludeTotalPattern = fmt.Sprintf("(%s)", strings.Join(cfg.ExcludePatterns, "|")) } var excludeProcessor processors.Processor