| import type { OpenClawConfig } from "../config/config.js"; | |
| import { isTruthyEnvValue } from "../infra/env.js"; | |
| import { startGmailWatcher } from "./gmail-watcher.js"; | |
| export type GMailWatcherLog = { | |
| info: (msg: string) => void; | |
| warn: (msg: string) => void; | |
| error: (msg: string) => void; | |
| }; | |
| export async function startGmailWatcherWithLogs(params: { | |
| cfg: OpenClawConfig; | |
| log: GMailWatcherLog; | |
| onSkipped?: () => void; | |
| }) { | |
| if (isTruthyEnvValue(process.env.OPENCLAW_SKIP_GMAIL_WATCHER)) { | |
| params.onSkipped?.(); | |
| return; | |
| } | |
| try { | |
| const gmailResult = await startGmailWatcher(params.cfg); | |
| if (gmailResult.started) { | |
| params.log.info("gmail watcher started"); | |
| return; | |
| } | |
| if ( | |
| gmailResult.reason && | |
| gmailResult.reason !== "hooks not enabled" && | |
| gmailResult.reason !== "no gmail account configured" | |
| ) { | |
| params.log.warn(`gmail watcher not started: ${gmailResult.reason}`); | |
| } | |
| } catch (err) { | |
| params.log.error(`gmail watcher failed to start: ${String(err)}`); | |
| } | |
| } | |