From c925f3f87e4bf665d9b8a382051cc67c6b24abad Mon Sep 17 00:00:00 2001 From: Sean DuBois Date: Sun, 4 Aug 2019 21:56:40 -0400 Subject: [PATCH] fix #416: Add skip-dirs-use-default --- pkg/commands/run.go | 17 +++++++++++++++-- pkg/config/config.go | 5 +++-- pkg/lint/runner.go | 6 ++++-- 3 files changed, 22 insertions(+), 6 deletions(-) diff --git a/pkg/commands/run.go b/pkg/commands/run.go index 597d26d65233..34d32c53e0db 100644 --- a/pkg/commands/run.go +++ b/pkg/commands/run.go @@ -10,6 +10,7 @@ import ( "strings" "time" + "github.com/golangci/golangci-lint/pkg/packages" "github.com/golangci/golangci-lint/pkg/result/processors" "github.com/fatih/color" @@ -26,7 +27,7 @@ import ( "github.com/golangci/golangci-lint/pkg/result" ) -func getDefaultExcludeHelp() string { +func getDefaultIssueExcludeHelp() string { parts := []string{"Use or not use default excludes:"} for _, ep := range config.DefaultExcludePatterns { parts = append(parts, @@ -38,6 +39,17 @@ func getDefaultExcludeHelp() string { return strings.Join(parts, "\n") } +func getDefaultDirectoryExcludeHelp() string { + parts := []string{"Use or not use default excluded directories:"} + for _, dir := range packages.StdExcludeDirRegexps { + parts = append(parts, + fmt.Sprintf(" - %s", color.YellowString(dir)), + "", + ) + } + return strings.Join(parts, "\n") +} + const welcomeMessage = "Run this tool in cloud on every github pull " + "request in https://golangci.com for free (public repos)" @@ -82,6 +94,7 @@ func initFlagSet(fs *pflag.FlagSet, cfg *config.Config, m *lintersdb.Manager, is fs.StringVarP(&rc.Config, "config", "c", "", wh("Read config from file path `PATH`")) fs.BoolVar(&rc.NoConfig, "no-config", false, wh("Don't read config")) fs.StringSliceVar(&rc.SkipDirs, "skip-dirs", nil, wh("Regexps of directories to skip")) + fs.BoolVar(&rc.UseDefaultSkipDirs, "skip-dirs-use-default", true, getDefaultDirectoryExcludeHelp()) fs.StringSliceVar(&rc.SkipFiles, "skip-files", nil, wh("Regexps of files to skip")) // Linters settings config @@ -161,7 +174,7 @@ func initFlagSet(fs *pflag.FlagSet, cfg *config.Config, m *lintersdb.Manager, is // Issues config ic := &cfg.Issues fs.StringSliceVarP(&ic.ExcludePatterns, "exclude", "e", nil, wh("Exclude issue by regexp")) - fs.BoolVar(&ic.UseDefaultExcludes, "exclude-use-default", true, getDefaultExcludeHelp()) + fs.BoolVar(&ic.UseDefaultExcludes, "exclude-use-default", true, getDefaultIssueExcludeHelp()) fs.IntVar(&ic.MaxIssuesPerLinter, "max-issues-per-linter", 50, wh("Maximum issues count per one linter. Set to 0 to disable")) diff --git a/pkg/config/config.go b/pkg/config/config.go index 9a113fe6d892..bb9c0410d2ed 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -118,8 +118,9 @@ type Run struct { Deadline time.Duration PrintVersion bool - SkipFiles []string `mapstructure:"skip-files"` - SkipDirs []string `mapstructure:"skip-dirs"` + SkipFiles []string `mapstructure:"skip-files"` + SkipDirs []string `mapstructure:"skip-dirs"` + UseDefaultSkipDirs bool `mapstructure:"skip-dirs-use-default"` } type LintersSettings struct { diff --git a/pkg/lint/runner.go b/pkg/lint/runner.go index fd700a496bb3..1de78e717b21 100644 --- a/pkg/lint/runner.go +++ b/pkg/lint/runner.go @@ -48,8 +48,10 @@ func NewRunner(astCache *astcache.Cache, cfg *config.Config, log logutils.Log, g return nil, err } - skipDirs := append([]string{}, packages.StdExcludeDirRegexps...) - skipDirs = append(skipDirs, cfg.Run.SkipDirs...) + skipDirs := cfg.Run.SkipDirs + if cfg.Run.UseDefaultSkipDirs { + skipDirs = append(skipDirs, packages.StdExcludeDirRegexps...) + } skipDirsProcessor, err := processors.NewSkipDirs(skipDirs, log.Child("skip dirs"), cfg.Run.Args) if err != nil { return nil, err