X-Git-Url: https://git.r.bdr.sh/rbdr/mobius/blobdiff_plain/0c0b2680077c1103609c87a652bcc2263460b1d7..f22acf38da970aa0d865a9978c9499dad01d235f:/cmd/mobius-hotline-client/main.go diff --git a/cmd/mobius-hotline-client/main.go b/cmd/mobius-hotline-client/main.go index ec6f895..4bd40c9 100644 --- a/cmd/mobius-hotline-client/main.go +++ b/cmd/mobius-hotline-client/main.go @@ -21,6 +21,7 @@ func main() { sigChan := make(chan os.Signal, 1) signal.Notify(sigChan, syscall.SIGTERM, syscall.SIGINT, os.Interrupt) + configDir := flag.String("config", defaultConfigPath(), "Path to config root") version := flag.Bool("version", false, "print version and exit") logLevel := flag.String("log-level", "info", "Log level") logFile := flag.String("log-file", "", "output logs to file") @@ -70,9 +71,7 @@ func main() { cancelRoot() }() - cfgPath := defaultConfigPath() - - client := hotline.NewClient(cfgPath, logger) + client := hotline.NewClient(*configDir, logger) client.DebugBuf = db client.UI.Start() @@ -98,12 +97,15 @@ var zapLogLevel = map[string]zapcore.Level{ } func defaultConfigPath() (cfgPath string) { - os := runtime.GOOS - switch os { + switch runtime.GOOS { case "windows": cfgPath = "mobius-client-config.yaml" case "darwin": - cfgPath = "/usr/local/etc/mobius-client-config.yaml" + if _, err := os.Stat("/usr/local/etc/mobius-client-config.yaml"); err == nil { + cfgPath = "/usr/local/etc/mobius-client-config.yaml" + } else if _, err := os.Stat("/opt/homebrew/etc/mobius-client-config.yaml"); err == nil { + cfgPath = "/opt/homebrew/etc/mobius-client-config.yaml" + } case "linux": cfgPath = "/usr/local/etc/mobius-client-config.yaml" default: