diff --git a/obs-staging-bot/main.go b/obs-staging-bot/main.go index 717457b..cb07981 100644 --- a/obs-staging-bot/main.go +++ b/obs-staging-bot/main.go @@ -1171,6 +1171,7 @@ var IsDryRun bool var ProcessPROnly string var ObsClient common.ObsClientInterface var BotUser string +var PollInterval = 5 * time.Minute func ObsWebHostFromApiHost(apihost string) string { u, err := url.Parse(apihost) @@ -1193,9 +1194,18 @@ func main() { flag.StringVar(&ObsApiHost, "obs", "", "API for OBS instance") flag.StringVar(&ObsWebHost, "obs-web", "", "Web OBS instance, if not derived from the obs config") flag.BoolVar(&IsDryRun, "dry", false, "Dry-run, don't actually create any build projects or review changes") + pollIntervalStr := flag.String("poll-interval", common.GetEnvOverrideString(os.Getenv("AUTOGITS_STAGING_BOT_POLL_INTERVAL"), ""), "Polling interval for notifications (e.g. 5m, 10s)") debug := flag.Bool("debug", false, "Turns on debug logging") flag.Parse() + if len(*pollIntervalStr) > 0 { + if d, err := time.ParseDuration(*pollIntervalStr); err == nil { + PollInterval = d + } else { + common.LogError("Invalid poll interval:", err) + } + } + if *debug { common.SetLoggingLevel(common.LogLevelDebug) } else { @@ -1264,6 +1274,6 @@ func main() { for { PollWorkNotifications(ObsClient, gitea) common.LogInfo("Poll cycle finished") - time.Sleep(5 * time.Minute) + time.Sleep(PollInterval) } }