Skip to content

Commit b9ddaab

Browse files
authored
fix: enable formatters with flags (#5620)
1 parent 0ad84c8 commit b9ddaab

File tree

6 files changed

+30
-12
lines changed

6 files changed

+30
-12
lines changed

pkg/commands/config.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ func (c *configCommand) preRunE(cmd *cobra.Command, args []string) error {
9696
// It only needs to know the path of the configuration file.
9797
cfg := config.NewDefault()
9898

99-
loader := config.NewLoader(c.log.Child(logutils.DebugKeyConfigReader), c.viper, cmd.Flags(), c.opts, cfg, args)
99+
loader := config.NewLintersLoader(c.log.Child(logutils.DebugKeyConfigReader), c.viper, cmd.Flags(), c.opts, cfg, args)
100100

101101
err := loader.Load(config.LoadOptions{})
102102
if err != nil {

pkg/commands/fmt.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ func newFmtCommand(logger logutils.Log, info BuildInfo) *fmtCommand {
8080
func (c *fmtCommand) persistentPreRunE(cmd *cobra.Command, args []string) error {
8181
c.log.Infof("%s", c.buildInfo.String())
8282

83-
loader := config.NewLoader(c.log.Child(logutils.DebugKeyConfigReader), c.viper, cmd.Flags(), c.opts.LoaderOptions, c.cfg, args)
83+
loader := config.NewFormattersLoader(c.log.Child(logutils.DebugKeyConfigReader), c.viper, cmd.Flags(), c.opts.LoaderOptions, c.cfg, args)
8484

8585
err := loader.Load(config.LoadOptions{CheckDeprecation: true, Validation: true})
8686
if err != nil {

pkg/commands/formatters.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ func newFormattersCommand(logger logutils.Log) *formattersCommand {
6969
}
7070

7171
func (c *formattersCommand) preRunE(cmd *cobra.Command, args []string) error {
72-
loader := config.NewLoader(c.log.Child(logutils.DebugKeyConfigReader), c.viper, cmd.Flags(), c.opts.LoaderOptions, c.cfg, args)
72+
loader := config.NewFormattersLoader(c.log.Child(logutils.DebugKeyConfigReader), c.viper, cmd.Flags(), c.opts.LoaderOptions, c.cfg, args)
7373

7474
err := loader.Load(config.LoadOptions{Validation: true})
7575
if err != nil {

pkg/commands/linters.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ func newLintersCommand(logger logutils.Log) *lintersCommand {
6969
}
7070

7171
func (c *lintersCommand) preRunE(cmd *cobra.Command, args []string) error {
72-
loader := config.NewLoader(c.log.Child(logutils.DebugKeyConfigReader), c.viper, cmd.Flags(), c.opts.LoaderOptions, c.cfg, args)
72+
loader := config.NewLintersLoader(c.log.Child(logutils.DebugKeyConfigReader), c.viper, cmd.Flags(), c.opts.LoaderOptions, c.cfg, args)
7373

7474
err := loader.Load(config.LoadOptions{Validation: true})
7575
if err != nil {

pkg/commands/run.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ func (c *runCommand) persistentPreRunE(cmd *cobra.Command, args []string) error
151151

152152
c.log.Infof("%s", c.buildInfo.String())
153153

154-
loader := config.NewLoader(c.log.Child(logutils.DebugKeyConfigReader), c.viper, cmd.Flags(), c.opts.LoaderOptions, c.cfg, args)
154+
loader := config.NewLintersLoader(c.log.Child(logutils.DebugKeyConfigReader), c.viper, cmd.Flags(), c.opts.LoaderOptions, c.cfg, args)
155155

156156
err := loader.Load(config.LoadOptions{CheckDeprecation: true, Validation: true})
157157
if err != nil {

pkg/config/loader.go

+25-7
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,11 @@ import (
1717

1818
var errConfigDisabled = errors.New("config is disabled by --no-config")
1919

20+
const (
21+
modeLinters = "linters"
22+
modeFormatters = "formatters"
23+
)
24+
2025
type LoaderOptions struct {
2126
Config string // Flag only. The path to the golangci config file, as specified with the --config argument.
2227
NoConfig bool // Flag only.
@@ -33,9 +38,25 @@ type Loader struct {
3338
fs *pflag.FlagSet
3439

3540
cfg *Config
41+
42+
mode string
43+
}
44+
45+
func NewLintersLoader(log logutils.Log, v *viper.Viper, fs *pflag.FlagSet, opts LoaderOptions, cfg *Config, args []string) *Loader {
46+
loader := newLoader(log, v, fs, opts, cfg, args)
47+
loader.mode = modeLinters
48+
49+
return loader
3650
}
3751

38-
func NewLoader(log logutils.Log, v *viper.Viper, fs *pflag.FlagSet, opts LoaderOptions, cfg *Config, args []string) *Loader {
52+
func NewFormattersLoader(log logutils.Log, v *viper.Viper, fs *pflag.FlagSet, opts LoaderOptions, cfg *Config, args []string) *Loader {
53+
loader := newLoader(log, v, fs, opts, cfg, args)
54+
loader.mode = modeFormatters
55+
56+
return loader
57+
}
58+
59+
func newLoader(log logutils.Log, v *viper.Viper, fs *pflag.FlagSet, opts LoaderOptions, cfg *Config, args []string) *Loader {
3960
return &Loader{
4061
BaseLoader: NewBaseLoader(log, v, opts, cfg, args),
4162
fs: fs,
@@ -44,18 +65,15 @@ func NewLoader(log logutils.Log, v *viper.Viper, fs *pflag.FlagSet, opts LoaderO
4465
}
4566

4667
func (l *Loader) Load(opts LoadOptions) error {
47-
err := l.setConfigFile()
68+
err := l.BaseLoader.Load()
4869
if err != nil {
4970
return err
5071
}
5172

52-
err = l.parseConfig()
53-
if err != nil {
54-
return err
73+
if l.mode == modeLinters {
74+
l.applyStringSliceHack()
5575
}
5676

57-
l.applyStringSliceHack()
58-
5977
if l.cfg.Linters.Exclusions.Generated == "" {
6078
l.cfg.Linters.Exclusions.Generated = GeneratedModeStrict
6179
}

0 commit comments

Comments
 (0)