#[cfg(feature = "local")]
fn main() -> Result<(), Box<dyn std::error::Error>> {
use osv::local::load_vulnerability;
use std::env;
use std::path::Path;
let args: Vec<String> = env::args().collect();
if args.len() != 2 {
eprintln!("Usage: cargo run --example load_file --features local -- <path_to_osv_json_file>");
std::process::exit(1);
}
let file_path_str = &args[1];
let file_path = Path::new(file_path_str);
println!("Attempting to load vulnerability from: {:?}", file_path);
match load_vulnerability(file_path) {
Ok(vulnerability) => {
println!("Successfully loaded vulnerability:");
println!("ID: {}", vulnerability.id);
println!("Modified: {}", vulnerability.modified);
if let Some(summary) = &vulnerability.summary {
println!("Summary: {}", summary);
}
if let Some(details) = &vulnerability.details {
println!("Details: {}", details);
}
}
Err(e) => {
eprintln!("Error loading vulnerability: {}", e);
std::process::exit(1);
}
}
Ok(())
}
#[cfg(not(feature = "local"))]
fn main() {
println!("This example requires the 'local' feature to be enabled.");
println!("Run with: cargo run --example load_file --features local -- <path>");
}