| 297 | } |
| 298 | |
| 299 | func loadDaemonEnv(c *Config) { |
| 300 | if v := os.Getenv("CHATCLI_SCHEDULER_DAEMON_SOCKET"); v != "" { |
| 301 | c.DaemonSocket = v |
| 302 | } |
| 303 | if v, ok := os.LookupEnv("CHATCLI_SCHEDULER_DAEMON_AUTO_CONNECT"); ok { |
| 304 | c.DaemonAutoConnect = parseEnvBool(v, true) |
| 305 | } |
| 306 | applyDurationEnv("CHATCLI_SCHEDULER_SNAPSHOT_INTERVAL", func(d time.Duration) { c.SnapshotInterval = d }) |
| 307 | applyDurationEnv("CHATCLI_SCHEDULER_WAL_GC_INTERVAL", func(d time.Duration) { c.WALGCInterval = d }) |
| 308 | applyIntEnv("CHATCLI_SCHEDULER_WORKER_COUNT", intPositive, func(n int) { c.WorkerCount = n }) |
| 309 | applyIntEnv("CHATCLI_SCHEDULER_WAIT_WORKER_COUNT", intPositive, func(n int) { c.WaitWorkerCount = n }) |
| 310 | } |
| 311 | |
| 312 | // parseEnvBool interprets "1/true/yes/on" as true and "0/false/no/off" |
| 313 | // as false. Any other value falls back to def. |