aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/mozart/src/commands/audit.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/mozart/src/commands/audit.rs')
-rw-r--r--crates/mozart/src/commands/audit.rs38
1 files changed, 20 insertions, 18 deletions
diff --git a/crates/mozart/src/commands/audit.rs b/crates/mozart/src/commands/audit.rs
index 74cb536..df0e5a9 100644
--- a/crates/mozart/src/commands/audit.rs
+++ b/crates/mozart/src/commands/audit.rs
@@ -4,7 +4,7 @@ use clap::Args;
use indexmap::IndexMap;
use mozart_core::advisory::{AbandonedHandling, AuditConfig, AuditFormat};
use mozart_core::composer::Composer;
-use mozart_registry::advisory::{Auditor, PackageInfo};
+use mozart_registry::advisory::{AuditOptions, Auditor, PackageInfo};
use mozart_registry::cache::{Cache, build_cache_config};
use mozart_registry::repository::RepositorySet;
@@ -50,9 +50,9 @@ pub async fn execute(
// Resolve format: CLI arg > config default (table)
let format = match args.format.as_deref() {
- Some(f) => match AuditFormat::from_str(f) {
- Some(fmt) => fmt,
- None => anyhow::bail!(
+ Some(f) => match f.parse::<AuditFormat>() {
+ Ok(fmt) => fmt,
+ Err(_) => anyhow::bail!(
"Invalid format \"{f}\". Supported formats: table, plain, json, summary"
),
},
@@ -61,9 +61,9 @@ pub async fn execute(
// Resolve --abandoned: CLI > config
let abandoned = match args.abandoned.as_deref() {
- Some(s) => match AbandonedHandling::from_str(s) {
- Some(h) => h,
- None => anyhow::bail!(
+ Some(s) => match s.parse::<AbandonedHandling>() {
+ Ok(h) => h,
+ Err(_) => anyhow::bail!(
"Invalid abandoned value \"{s}\". Supported values: ignore, report, fail"
),
},
@@ -98,13 +98,15 @@ pub async fn execute(
console,
&repo_set,
&packages,
- format,
- false,
- &audit_config.ignore_list_for_audit,
- abandoned,
- &ignore_severities,
- ignore_unreachable,
- &audit_config.ignore_abandoned_for_audit,
+ &AuditOptions {
+ format,
+ warning_only: false,
+ ignore_list: &audit_config.ignore_list_for_audit,
+ abandoned,
+ ignored_severities: &ignore_severities,
+ ignore_unreachable,
+ ignore_abandoned: &audit_config.ignore_abandoned_for_audit,
+ },
)
.await?;
@@ -460,14 +462,14 @@ mod tests {
#[test]
fn test_invalid_format() {
let format = "xml";
- assert!(AuditFormat::from_str(format).is_none());
+ assert!(format.parse::<AuditFormat>().is_err());
}
#[test]
fn test_valid_formats() {
for fmt in &["table", "plain", "json", "summary"] {
assert!(
- AuditFormat::from_str(fmt).is_some(),
+ fmt.parse::<AuditFormat>().is_ok(),
"format {fmt} should be valid"
);
}
@@ -475,14 +477,14 @@ mod tests {
#[test]
fn test_invalid_abandoned_value() {
- assert!(AbandonedHandling::from_str("maybe").is_none());
+ assert!("maybe".parse::<AbandonedHandling>().is_err());
}
#[test]
fn test_valid_abandoned_values() {
for value in &["ignore", "report", "fail"] {
assert!(
- AbandonedHandling::from_str(value).is_some(),
+ value.parse::<AbandonedHandling>().is_ok(),
"abandoned value {value} should be valid"
);
}