初步完成 --repoter
Signed-off-by: Jia Chao <jiachao2130@126.com>
This commit is contained in:
parent
adf2180d11
commit
6c2b47d4f4
|
@ -188,14 +188,72 @@ fn list_sas(cli: &Cli) -> crate::Result<()> {
|
|||
|
||||
// 最为详尽的报告,包括当前系统中软件包所涉及到,已修复和可用但未修复
|
||||
// 的所有软件包的列表。
|
||||
// 其格式如下:
|
||||
// XXXXXX 报告
|
||||
// FIXED:
|
||||
// SA ID
|
||||
// CVES
|
||||
// effected rpms list
|
||||
// ...
|
||||
//
|
||||
// ====================
|
||||
// AVALIABLE:
|
||||
// SA ID
|
||||
// CVES
|
||||
// effected rpms list
|
||||
// ...
|
||||
//
|
||||
fn repoter(cli: &Cli) -> crate::Result<()> {
|
||||
let reporter = _reporter()?;
|
||||
let fixed = reporter.get_fixed();
|
||||
let avaliable = reporter.get_avaliable();
|
||||
let _ = fixed;
|
||||
let _ = avaliable;
|
||||
println!("TODO...");
|
||||
Ok(())
|
||||
let mut msg = String::new();
|
||||
|
||||
msg = format!("{msg}系统漏洞信息检测报告\n\n");
|
||||
|
||||
// fixed
|
||||
msg = format!("{msg}已修复的安全公告\n");
|
||||
for (cusa, rpms) in fixed {
|
||||
// sa cves 信息
|
||||
msg = format!("{msg}{} (fixed):\n", cusa.id());
|
||||
let mut cves = vec![];
|
||||
cusa.cves().iter().for_each(|cve| { cves.push(&cve.id); });
|
||||
msg = format!("{msg}{:2}涉及 CVE 列表:{:?}\n", "", cves);
|
||||
|
||||
for rpm in rpms {
|
||||
msg = format!("{msg}{:4}{}\n", "", rpm.nevra());
|
||||
}
|
||||
// 空
|
||||
msg = format!("{msg}\n");
|
||||
}
|
||||
|
||||
// "==============="
|
||||
let mut seprator = String::new();
|
||||
for _ in 0..80 {
|
||||
seprator.push('=');
|
||||
}
|
||||
msg = format!("{msg}\n{seprator}\n\n\n");
|
||||
|
||||
// avaliable updates
|
||||
msg = format!("{msg}可用更新\n");
|
||||
for (cusa, rpms) in avaliable {
|
||||
// sa cves 信息
|
||||
msg = format!("{msg}{} (avaliable):\n", cusa.id());
|
||||
let mut cves = vec![];
|
||||
cusa.cves().iter().for_each(|cve| { cves.push(&cve.id); });
|
||||
msg = format!("{msg}{:2}涉及 CVE 列表:{:?}\n", "", cves);
|
||||
|
||||
for rpm in rpms {
|
||||
msg = format!("{msg}{:4}{}\n", "", rpm.nevra());
|
||||
}
|
||||
// 空
|
||||
msg = format!("{msg}\n");
|
||||
}
|
||||
|
||||
println!("{msg}");
|
||||
|
||||
// summary 一下
|
||||
summary(cli)
|
||||
}
|
||||
|
||||
fn summary(cli: &Cli) -> crate::Result<()> {
|
||||
|
|
Loading…
Reference in New Issue
Block a user