diff --git a/internal/cmd/mockery.go b/internal/cmd/mockery.go index f6d72b77..99857690 100644 --- a/internal/cmd/mockery.go +++ b/internal/cmd/mockery.go @@ -33,12 +33,12 @@ func NewRootCmd() (*cobra.Command, error) { } level, err := pFlags.GetString("log-level") if err != nil { - fmt.Printf("failed to get log-level from flags: %s", err.Error()) + fmt.Printf("failed to get log-level from flags: %s\n", err.Error()) os.Exit(1) } log, err := logging.GetLogger(level) if err != nil { - fmt.Printf("failed to get logger: %s", err.Error()) + fmt.Printf("failed to get logger: %s\n", err.Error()) os.Exit(1) } ctx := log.WithContext(context.Background()) @@ -91,16 +91,8 @@ type RootApp struct { } func GetRootApp(ctx context.Context, flags *pflag.FlagSet) (*RootApp, error) { - var configFile *pathlib.Path r := &RootApp{} - configFromFlags, err := flags.GetString("config") - if err != nil { - return nil, err - } - if configFromFlags != "" { - configFile = pathlib.NewPath(configFromFlags) - } - config, _, err := pkg.NewRootConfig(ctx, configFile, flags) + config, _, err := pkg.NewRootConfig(ctx, flags) if err != nil { return nil, stackerr.NewStackErrf(err, "failed to get config") } diff --git a/internal/cmd/showconfig.go b/internal/cmd/showconfig.go index d1939417..a09a4662 100644 --- a/internal/cmd/showconfig.go +++ b/internal/cmd/showconfig.go @@ -24,7 +24,7 @@ func NewShowConfigCmd() *cobra.Command { } ctx := log.WithContext(context.Background()) - conf, _, err := pkg.NewRootConfig(ctx, nil, cmd.Parent().PersistentFlags()) + conf, _, err := pkg.NewRootConfig(ctx, cmd.Parent().PersistentFlags()) if err != nil { return err } diff --git a/internal/config.go b/internal/config.go index 72effc41..f1bfc0aa 100644 --- a/internal/config.go +++ b/internal/config.go @@ -38,25 +38,17 @@ type RootConfig struct { func NewRootConfig( ctx context.Context, - configFile *pathlib.Path, flags *pflag.FlagSet, ) (*RootConfig, *koanf.Koanf, error) { + var configFile *pathlib.Path + log := zerolog.Ctx(ctx) var err error - strPtr := func(s string) *string { - return &s - } - defaultConfig := &Config{ - Dir: strPtr("{{.InterfaceDir}}"), - FileName: strPtr("mocks_test.go"), - Formatter: strPtr("goimports"), - MockName: strPtr("Mock{{.InterfaceName}}"), - PkgName: strPtr("{{.SrcPackageName}}"), - LogLevel: strPtr("info"), - } - // Set all the other parameters to their respective zero-values. Need to use + + conf := &Config{} + // Set all parameters to their respective zero-values. Need to use // reflection for this sadly. - v := reflect.ValueOf(defaultConfig).Elem() + v := reflect.ValueOf(conf).Elem() for i := 0; i < v.NumField(); i++ { field := v.Field(i) if field.Kind() != reflect.Pointer { @@ -69,26 +61,29 @@ func NewRootConfig( } var rootConfig RootConfig = RootConfig{ - Config: defaultConfig, + Config: conf, } k := koanf.New("|") rootConfig.koanf = k - if configFile != nil { - log.Debug().Str("config-file-args", configFile.String()).Msg("config file from args") - } + k.Set("dir", "{{.InterfaceDir}}") + k.Set("filename", "mocks_test.go") + k.Set("formatter", "goimports") + k.Set("mockname", "Mock{{.InterfaceName}}") + k.Set("pkgname", "{{.SrcPackageName}}") + k.Set("log-level", "info") - if configFile == nil { - configFileFromEnv := os.Getenv("MOCKERY_CONFIG") - if configFileFromEnv != "" { - configFile = pathlib.NewPath(configFileFromEnv) - } + configFileFromEnv := os.Getenv("MOCKERY_CONFIG") + if configFileFromEnv != "" { + configFile = pathlib.NewPath(configFileFromEnv) } if configFile == nil { configFileFromFlags, err := flags.GetString("config") if err != nil { return nil, nil, fmt.Errorf("getting --config from flags: %w", err) } - configFile = pathlib.NewPath(configFileFromFlags) + if configFileFromFlags != "" { + configFile = pathlib.NewPath(configFileFromFlags) + } } if configFile == nil { log.Debug().Msg("config file not specified, searching")