dnf 支持,添加骨架
Signed-off-by: Jia Chao <jiachao2130@126.com>
This commit is contained in:
parent
fcd1a4dc7d
commit
e5b9f185c5
|
@ -45,9 +45,7 @@ impl Reporter {
|
|||
let fixed = HashMap::new();
|
||||
let avaliable = HashMap::new();
|
||||
|
||||
Self {
|
||||
fixed, avaliable
|
||||
}
|
||||
Self { fixed, avaliable }
|
||||
}
|
||||
|
||||
// get fixed, 不可写
|
||||
|
@ -106,11 +104,17 @@ pub fn cuvat_run(cli: &Cli) -> crate::Result<()> {
|
|||
}
|
||||
|
||||
fn list_cves(cli: &Cli) -> crate::Result<()> {
|
||||
if cli.dnf {
|
||||
return _dnf_list_cves(cli);
|
||||
}
|
||||
|
||||
let reporter = _reporter()?;
|
||||
let avaliable = reporter.get_avaliable();
|
||||
let severity = Severity::from_str(&cli.severity)?;
|
||||
let mut _cves = HashSet::new();
|
||||
cli.sources.iter().for_each(|id| { _cves.insert(id); });
|
||||
cli.sources.iter().for_each(|id| {
|
||||
_cves.insert(id);
|
||||
});
|
||||
|
||||
let mut cves = HashSet::new();
|
||||
let mut msg = String::new();
|
||||
|
@ -147,12 +151,22 @@ fn list_cves(cli: &Cli) -> crate::Result<()> {
|
|||
Ok(())
|
||||
}
|
||||
|
||||
fn _dnf_list_cves(_cli: &Cli) -> crate::Result<()> {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn list_sas(cli: &Cli) -> crate::Result<()> {
|
||||
if cli.dnf {
|
||||
return _dnf_list_sas(cli);
|
||||
}
|
||||
|
||||
let reporter = _reporter()?;
|
||||
let avaliable = reporter.get_avaliable();
|
||||
let severity = Severity::from_str(&cli.severity)?;
|
||||
let mut _sas = HashSet::new();
|
||||
cli.sources.iter().for_each(|id| { _sas.insert(id); });
|
||||
cli.sources.iter().for_each(|id| {
|
||||
_sas.insert(id);
|
||||
});
|
||||
|
||||
let mut sas = HashSet::new();
|
||||
let mut msg = String::new();
|
||||
|
@ -187,6 +201,10 @@ fn list_sas(cli: &Cli) -> crate::Result<()> {
|
|||
Ok(())
|
||||
}
|
||||
|
||||
fn _dnf_list_sas(_cli: &Cli) -> crate::Result<()> {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
// 最为详尽的报告,包括当前系统中软件包所涉及到,已修复和可用但未修复
|
||||
// 的所有软件包的列表。
|
||||
// 其格式如下:
|
||||
|
@ -205,6 +223,11 @@ fn list_sas(cli: &Cli) -> crate::Result<()> {
|
|||
// ...
|
||||
//
|
||||
fn repoter(cli: &Cli) -> crate::Result<()> {
|
||||
if cli.dnf {
|
||||
println!("暂不支持此功能,请联系开发者");
|
||||
return Ok(());
|
||||
}
|
||||
|
||||
let reporter = _reporter()?;
|
||||
let fixed = reporter.get_fixed();
|
||||
let avaliable = reporter.get_avaliable();
|
||||
|
@ -218,7 +241,9 @@ fn repoter(cli: &Cli) -> crate::Result<()> {
|
|||
// sa cves 信息
|
||||
msg = format!("{msg}{} (fixed):\n", cusa.id());
|
||||
let mut cves = vec![];
|
||||
cusa.cves().iter().for_each(|cve| { cves.push(&cve.id); });
|
||||
cusa.cves().iter().for_each(|cve| {
|
||||
cves.push(&cve.id);
|
||||
});
|
||||
msg = format!("{msg}{:2}涉及 CVE 列表:{:?}\n", "", cves);
|
||||
|
||||
for rpm in rpms {
|
||||
|
@ -241,7 +266,9 @@ fn repoter(cli: &Cli) -> crate::Result<()> {
|
|||
// sa cves 信息
|
||||
msg = format!("{msg}{} (avaliable):\n", cusa.id());
|
||||
let mut cves = vec![];
|
||||
cusa.cves().iter().for_each(|cve| { cves.push(&cve.id); });
|
||||
cusa.cves().iter().for_each(|cve| {
|
||||
cves.push(&cve.id);
|
||||
});
|
||||
msg = format!("{msg}{:2}涉及 CVE 列表:{:?}\n", "", cves);
|
||||
|
||||
for rpm in rpms {
|
||||
|
@ -258,6 +285,10 @@ fn repoter(cli: &Cli) -> crate::Result<()> {
|
|||
}
|
||||
|
||||
fn summary(cli: &Cli) -> crate::Result<()> {
|
||||
if cli.dnf {
|
||||
return _dnf_summary(cli);
|
||||
}
|
||||
|
||||
let reporter = _reporter()?;
|
||||
let avaliable = reporter.get_avaliable();
|
||||
let severity = Severity::from_str(&cli.severity)?;
|
||||
|
@ -306,6 +337,10 @@ fn summary(cli: &Cli) -> crate::Result<()> {
|
|||
Ok(())
|
||||
}
|
||||
|
||||
fn _dnf_summary(_cli: &Cli) -> crate::Result<()> {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn _reporter() -> crate::Result<Reporter> {
|
||||
let mut reporter = Reporter::new();
|
||||
// 当前系统所有已安装的 rpm 包
|
||||
|
|
|
@ -17,7 +17,7 @@ pub type Result<T> = std::result::Result<T, Error>;
|
|||
|
||||
// 首先需要读取并载入配置信息
|
||||
// 默认为 /etc/cuavrs 下
|
||||
lazy_static!{
|
||||
lazy_static! {
|
||||
pub static ref CONFIG: Config = {
|
||||
let default = Path::new("/etc/cuavrs/cuvat.json");
|
||||
if default.is_file() {
|
||||
|
|
Loading…
Reference in New Issue
Block a user