完成:--sas 查找并列出并查看已修复但尚未更新的 sa 安全公告信息

Signed-off-by: Jia Chao <jiachao2130@126.com>
This commit is contained in:
Jia Chao 2024-08-09 11:37:10 +08:00
parent 4510e3500d
commit b3f2204a88

View File

@ -94,6 +94,39 @@ fn list_cves(cli: &Cli) -> crate::Result<()> {
fn list_sas(cli: &Cli) -> crate::Result<()> {
let avaliable = get_avaliable()?;
let severity = Severity::from_str(&cli.severity)?;
let mut _sas = HashSet::new();
cli.sources.iter().for_each(|id| { _sas.insert(id); });
let mut sas = HashSet::new();
let mut msg = String::new();
// 仅针对可用更新
for (cusa, _) in &avaliable {
// 过滤
if cusa.severity() < &severity {
continue;
}
if let Some(_) = _sas.get(&cusa.id) {
let _ = sas.insert(cusa.clone());
_sas.remove(&cusa.id);
}
}
for sa in &sas {
if cli.info {
msg = format!("{msg}\n\n{sa:#?}");
} else {
msg = format!("{msg}\n{}", sa.id);
}
}
if !_sas.is_empty() {
msg = format!("{msg}\n\nUnaffected SAs:\n{_sas:#?}")
}
println!("{msg}");
Ok(())
}