]> git.r.bdr.sh - rbdr/mobius/blobdiff - cmd/mobius-hotline-client/main.go
Minor cleanup
[rbdr/mobius] / cmd / mobius-hotline-client / main.go
index ec6f8951eb0380868e6209e0179f2958d9ac988f..72b581bb7634ad3508b473a0857d7a79daf3ee1b 100644 (file)
@@ -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,12 +71,9 @@ func main() {
                cancelRoot()
        }()
 
-       cfgPath := defaultConfigPath()
-
-       client := hotline.NewClient(cfgPath, logger)
+       client := hotline.NewUIClient(*configDir, logger)
        client.DebugBuf = db
        client.UI.Start()
-
 }
 
 func newZapCore(level zapcore.Level, syncer zapcore.WriteSyncer) zapcore.Core {
@@ -98,12 +96,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: