···234234 const loop $ Fmt_cli.style_renderer () $ Logs_cli.level ()
235235 $ requests_verbose_arg $ config_file $ bot_name $ interval)
236236237237-let loop_cmd =
238238- let open Cmdliner in
239239- let config_file =
240240- Arg.(
241241- value
242242- & opt (some string) None
243243- & info [ "c"; "config" ] ~docv:"FILE"
244244- ~doc:"Path to poe.toml configuration file.")
245245- in
246246- let bot_name =
247247- Arg.(
248248- value
249249- & opt string "poe"
250250- & info [ "n"; "name" ] ~docv:"NAME"
251251- ~doc:"Bot name for Zulip configuration lookup.")
252252- in
253253- let interval =
254254- Arg.(
255255- value
256256- & opt int 3600
257257- & info [ "i"; "interval" ] ~docv:"SECONDS"
258258- ~doc:"Interval in seconds between change checks (default: 3600).")
259259- in
260260- let loop style_renderer level config_file bot_name interval =
261261- setup_logging style_renderer level;
262262- Eio_main.run @@ fun env ->
263263- Eio.Switch.run @@ fun sw ->
264264- let fs = Eio.Stdenv.fs env in
265265-266266- (* Load poe config: explicit path > XDG > current dir > defaults *)
267267- let poe_config =
268268- match config_file with
269269- | Some path -> Poe.Config.load ~fs path
270270- | None -> (
271271- match Poe.Config.load_xdg_opt ~fs with
272272- | Some c -> c
273273- | None -> (
274274- match Poe.Config.load_opt ~fs "poe.toml" with
275275- | Some c -> c
276276- | None -> Poe.Config.default))
277277- in
278278-279279- let zulip_config = Zulip_bot.Config.load_or_env ~xdg_app:"poe" ~fs bot_name in
280280- Logs.info (fun m ->
281281- m "Starting loop, broadcasting to %s/%s every %d seconds"
282282- poe_config.channel poe_config.topic interval);
283283- Poe.Loop.run ~sw ~env ~config:poe_config ~zulip_config ~interval
284284- in
285285- let doc = "Run polling loop to check for and broadcast changes" in
286286- let info = Cmd.info "loop" ~doc in
287287- Cmd.v info
288288- Term.(
289289- const loop $ Fmt_cli.style_renderer () $ Logs_cli.level ()
290290- $ config_file $ bot_name $ interval)
291291-292237let main_cmd =
293238 let open Cmdliner in
294239 let doc = "Poe - Zulip bot for monorepo changes with Claude integration" in