Skip to main content

kaizen/shell/
alerts.rs

1// SPDX-License-Identifier: AGPL-3.0-or-later
2use crate::core_loop::{alerts, time};
3use crate::shell::cli::workspace_path;
4use crate::store::Store;
5use anyhow::Result;
6use std::path::Path;
7
8pub fn cmd_alerts_check(workspace: Option<&Path>, days: u64, json: bool) -> Result<()> {
9    let ws = workspace_path(workspace)?;
10    let store = Store::open(&crate::core::workspace::db_path(&ws)?)?;
11    let rows = alerts::check_builtin(
12        &store,
13        &ws.to_string_lossy(),
14        time::since_days(days),
15        time::now_ms(),
16    )?;
17    if json {
18        println!("{}", serde_json::to_string_pretty(&rows)?);
19    } else {
20        rows.iter()
21            .for_each(|r| println!("{} {} {}", r.severity.as_str(), r.name, r.message));
22    }
23    Ok(())
24}