fix #416: Add skip-dirs-use-default (#630)

This commit is contained in:
Sean DuBois 2019-09-10 01:14:25 -07:00 committed by Isaev Denis
parent c87c37210f
commit f312a0fc4e
3 changed files with 22 additions and 6 deletions

View File

@ -10,6 +10,7 @@ import (
"strings" "strings"
"time" "time"
"github.com/golangci/golangci-lint/pkg/packages"
"github.com/golangci/golangci-lint/pkg/result/processors" "github.com/golangci/golangci-lint/pkg/result/processors"
"github.com/fatih/color" "github.com/fatih/color"
@ -26,7 +27,7 @@ import (
"github.com/golangci/golangci-lint/pkg/result" "github.com/golangci/golangci-lint/pkg/result"
) )
func getDefaultExcludeHelp() string { func getDefaultIssueExcludeHelp() string {
parts := []string{"Use or not use default excludes:"} parts := []string{"Use or not use default excludes:"}
for _, ep := range config.DefaultExcludePatterns { for _, ep := range config.DefaultExcludePatterns {
parts = append(parts, parts = append(parts,
@ -38,6 +39,17 @@ func getDefaultExcludeHelp() string {
return strings.Join(parts, "\n") 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 " + const welcomeMessage = "Run this tool in cloud on every github pull " +
"request in https://golangci.com for free (public repos)" "request in https://golangci.com for free (public repos)"
@ -83,6 +95,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.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.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.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")) fs.StringSliceVar(&rc.SkipFiles, "skip-files", nil, wh("Regexps of files to skip"))
// Linters settings config // Linters settings config
@ -162,7 +175,7 @@ func initFlagSet(fs *pflag.FlagSet, cfg *config.Config, m *lintersdb.Manager, is
// Issues config // Issues config
ic := &cfg.Issues ic := &cfg.Issues
fs.StringSliceVarP(&ic.ExcludePatterns, "exclude", "e", nil, wh("Exclude issue by regexp")) 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, fs.IntVar(&ic.MaxIssuesPerLinter, "max-issues-per-linter", 50,
wh("Maximum issues count per one linter. Set to 0 to disable")) wh("Maximum issues count per one linter. Set to 0 to disable"))

View File

@ -118,8 +118,9 @@ type Run struct {
Deadline time.Duration Deadline time.Duration
PrintVersion bool PrintVersion bool
SkipFiles []string `mapstructure:"skip-files"` SkipFiles []string `mapstructure:"skip-files"`
SkipDirs []string `mapstructure:"skip-dirs"` SkipDirs []string `mapstructure:"skip-dirs"`
UseDefaultSkipDirs bool `mapstructure:"skip-dirs-use-default"`
} }
type LintersSettings struct { type LintersSettings struct {

View File

@ -48,8 +48,10 @@ func NewRunner(astCache *astcache.Cache, cfg *config.Config, log logutils.Log, g
return nil, err return nil, err
} }
skipDirs := append([]string{}, packages.StdExcludeDirRegexps...) skipDirs := cfg.Run.SkipDirs
skipDirs = append(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) skipDirsProcessor, err := processors.NewSkipDirs(skipDirs, log.Child("skip dirs"), cfg.Run.Args)
if err != nil { if err != nil {
return nil, err return nil, err