]> git.r.bdr.sh - rbdr/mobius/blobdiff - cmd/mobius-hotline-client/main.go
Merge pull request #53 from jhalter/fix_and_refactor_old_post_news
[rbdr/mobius] / cmd / mobius-hotline-client / main.go
index ec6f8951eb0380868e6209e0179f2958d9ac988f..4bd40c9b124ff7fd49888dae8f5a01584f044608 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,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: