diff --git a/cmd/crowdsec-cli/main.go b/cmd/crowdsec-cli/main.go index 6bc40afff..10243057d 100644 --- a/cmd/crowdsec-cli/main.go +++ b/cmd/crowdsec-cli/main.go @@ -51,13 +51,18 @@ func initConfig() { } logFormatter := &log.TextFormatter{TimestampFormat: "02-01-2006 03:04:05 PM", FullTimestamp: true} log.SetFormatter(logFormatter) - csConfig, err = csconfig.NewConfig(ConfigFilePath, false, false) - if err != nil { - log.Fatalf(err.Error()) - } - log.Debugf("Using %s as configuration file", ConfigFilePath) - if err := csConfig.LoadCSCLI(); err != nil { - log.Fatalf(err.Error()) + + if !inSlice(os.Args[1], NoNeedConfig) { + csConfig, err = csconfig.NewConfig(ConfigFilePath, false, false) + if err != nil { + log.Fatalf(err.Error()) + } + log.Debugf("Using %s as configuration file", ConfigFilePath) + if err := csConfig.LoadCSCLI(); err != nil { + log.Fatalf(err.Error()) + } + } else { + csConfig = csconfig.NewDefaultConfig() } if csConfig.Cscli == nil { @@ -76,7 +81,6 @@ func initConfig() { if csConfig.Cscli.Output == "" { csConfig.Cscli.Output = "human" } - if csConfig.Cscli.Output == "json" { log.SetFormatter(&log.JSONFormatter{}) log.SetLevel(log.ErrorLevel) @@ -107,6 +111,15 @@ func linkHandler(name string) string { return fmt.Sprintf("/cscli/%s", name) } +var ( + NoNeedConfig = []string{ + "help", + "completion", + "version", + "hubtest", + } +) + func main() { var rootCmd = &cobra.Command{ @@ -158,7 +171,7 @@ It is meant to allow you to manage bans, parsers/scenarios/etc, api and generall log.Fatalf("failed to hide flag: %s", err) } - if len(os.Args) > 1 && os.Args[1] != "completion" && os.Args[1] != "version" && os.Args[1] != "help" { + if len(os.Args) > 1 { cobra.OnInitialize(initConfig) }