1use 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}