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 fixed = HashMap::new();
|
||||||
let avaliable = HashMap::new();
|
let avaliable = HashMap::new();
|
||||||
|
|
||||||
Self {
|
Self { fixed, avaliable }
|
||||||
fixed, avaliable
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// get fixed, 不可写
|
// get fixed, 不可写
|
||||||
|
@ -106,11 +104,17 @@ pub fn cuvat_run(cli: &Cli) -> crate::Result<()> {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn list_cves(cli: &Cli) -> crate::Result<()> {
|
fn list_cves(cli: &Cli) -> crate::Result<()> {
|
||||||
|
if cli.dnf {
|
||||||
|
return _dnf_list_cves(cli);
|
||||||
|
}
|
||||||
|
|
||||||
let reporter = _reporter()?;
|
let reporter = _reporter()?;
|
||||||
let avaliable = reporter.get_avaliable();
|
let avaliable = reporter.get_avaliable();
|
||||||
let severity = Severity::from_str(&cli.severity)?;
|
let severity = Severity::from_str(&cli.severity)?;
|
||||||
let mut _cves = HashSet::new();
|
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 cves = HashSet::new();
|
||||||
let mut msg = String::new();
|
let mut msg = String::new();
|
||||||
|
@ -147,12 +151,22 @@ fn list_cves(cli: &Cli) -> crate::Result<()> {
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn _dnf_list_cves(_cli: &Cli) -> crate::Result<()> {
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
fn list_sas(cli: &Cli) -> crate::Result<()> {
|
fn list_sas(cli: &Cli) -> crate::Result<()> {
|
||||||
|
if cli.dnf {
|
||||||
|
return _dnf_list_sas(cli);
|
||||||
|
}
|
||||||
|
|
||||||
let reporter = _reporter()?;
|
let reporter = _reporter()?;
|
||||||
let avaliable = reporter.get_avaliable();
|
let avaliable = reporter.get_avaliable();
|
||||||
let severity = Severity::from_str(&cli.severity)?;
|
let severity = Severity::from_str(&cli.severity)?;
|
||||||
let mut _sas = HashSet::new();
|
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 sas = HashSet::new();
|
||||||
let mut msg = String::new();
|
let mut msg = String::new();
|
||||||
|
@ -187,6 +201,10 @@ fn list_sas(cli: &Cli) -> crate::Result<()> {
|
||||||
Ok(())
|
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<()> {
|
fn repoter(cli: &Cli) -> crate::Result<()> {
|
||||||
|
if cli.dnf {
|
||||||
|
println!("暂不支持此功能,请联系开发者");
|
||||||
|
return Ok(());
|
||||||
|
}
|
||||||
|
|
||||||
let reporter = _reporter()?;
|
let reporter = _reporter()?;
|
||||||
let fixed = reporter.get_fixed();
|
let fixed = reporter.get_fixed();
|
||||||
let avaliable = reporter.get_avaliable();
|
let avaliable = reporter.get_avaliable();
|
||||||
|
@ -218,7 +241,9 @@ fn repoter(cli: &Cli) -> crate::Result<()> {
|
||||||
// sa cves 信息
|
// sa cves 信息
|
||||||
msg = format!("{msg}{} (fixed):\n", cusa.id());
|
msg = format!("{msg}{} (fixed):\n", cusa.id());
|
||||||
let mut cves = vec![];
|
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);
|
msg = format!("{msg}{:2}涉及 CVE 列表:{:?}\n", "", cves);
|
||||||
|
|
||||||
for rpm in rpms {
|
for rpm in rpms {
|
||||||
|
@ -241,7 +266,9 @@ fn repoter(cli: &Cli) -> crate::Result<()> {
|
||||||
// sa cves 信息
|
// sa cves 信息
|
||||||
msg = format!("{msg}{} (avaliable):\n", cusa.id());
|
msg = format!("{msg}{} (avaliable):\n", cusa.id());
|
||||||
let mut cves = vec![];
|
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);
|
msg = format!("{msg}{:2}涉及 CVE 列表:{:?}\n", "", cves);
|
||||||
|
|
||||||
for rpm in rpms {
|
for rpm in rpms {
|
||||||
|
@ -258,6 +285,10 @@ fn repoter(cli: &Cli) -> crate::Result<()> {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn summary(cli: &Cli) -> crate::Result<()> {
|
fn summary(cli: &Cli) -> crate::Result<()> {
|
||||||
|
if cli.dnf {
|
||||||
|
return _dnf_summary(cli);
|
||||||
|
}
|
||||||
|
|
||||||
let reporter = _reporter()?;
|
let reporter = _reporter()?;
|
||||||
let avaliable = reporter.get_avaliable();
|
let avaliable = reporter.get_avaliable();
|
||||||
let severity = Severity::from_str(&cli.severity)?;
|
let severity = Severity::from_str(&cli.severity)?;
|
||||||
|
@ -306,6 +337,10 @@ fn summary(cli: &Cli) -> crate::Result<()> {
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn _dnf_summary(_cli: &Cli) -> crate::Result<()> {
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
fn _reporter() -> crate::Result<Reporter> {
|
fn _reporter() -> crate::Result<Reporter> {
|
||||||
let mut reporter = Reporter::new();
|
let mut reporter = Reporter::new();
|
||||||
// 当前系统所有已安装的 rpm 包
|
// 当前系统所有已安装的 rpm 包
|
||||||
|
|
|
@ -17,7 +17,7 @@ pub type Result<T> = std::result::Result<T, Error>;
|
||||||
|
|
||||||
// 首先需要读取并载入配置信息
|
// 首先需要读取并载入配置信息
|
||||||
// 默认为 /etc/cuavrs 下
|
// 默认为 /etc/cuavrs 下
|
||||||
lazy_static!{
|
lazy_static! {
|
||||||
pub static ref CONFIG: Config = {
|
pub static ref CONFIG: Config = {
|
||||||
let default = Path::new("/etc/cuavrs/cuvat.json");
|
let default = Path::new("/etc/cuavrs/cuvat.json");
|
||||||
if default.is_file() {
|
if default.is_file() {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user