diff --git a/src/cfg/cfg.go b/src/cfg/cfg.go index e1ad5db..1321fbb 100644 --- a/src/cfg/cfg.go +++ b/src/cfg/cfg.go @@ -15,6 +15,7 @@ type AppSettings struct { VersionMode bool MetricsPort int Fail2BanDbPath string + Fail2BanSocketPath string } func Parse() *AppSettings { @@ -22,6 +23,7 @@ func Parse() *AppSettings { flag.BoolVar(&appSettings.VersionMode, "version", false, "show version info and exit") flag.IntVar(&appSettings.MetricsPort, "port", 9191, "port to use for the metrics server") flag.StringVar(&appSettings.Fail2BanDbPath, "db", "", "path to the fail2ban sqlite database") + flag.StringVar(&appSettings.Fail2BanSocketPath, "socket", "", "path to the fail2ban server socket") flag.Parse() appSettings.validateFlags() @@ -31,8 +33,8 @@ func Parse() *AppSettings { func (settings *AppSettings) validateFlags() { var flagsValid = true if !settings.VersionMode { - if settings.Fail2BanDbPath == "" { - fmt.Println("missing flag 'db'") + if settings.Fail2BanDbPath == "" && settings.Fail2BanSocketPath == "" { + fmt.Println("at least one of the following flags must be provided: 'db', 'socket'") flagsValid = false } if settings.MetricsPort < minServerPort || settings.MetricsPort > maxServerPort {