#[cfg(feature = "local")]
fn main() -> Result<(), Box<dyn std::error::Error>> {
use osv::local::load_directory;
use std::env;
use std::path::Path;
let args: Vec<String> = env::args().collect();
if args.len() < 2 || args.len() > 3 {
eprintln!("Usage: cargo run --example load_dir --features local -- <path_to_directory> [recursive]");
std::process::exit(1);
}
let dir_path_str = &args[1];
let dir_path = Path::new(dir_path_str);
let recursive = args.len() == 3 && args[2] == "recursive";
println!(
"Attempting to load vulnerabilities from directory: {:?} (recursive: {})",
dir_path, recursive
);
match load_directory(dir_path, recursive) {
Ok(vulnerabilities) => {
println!(
"Successfully loaded {} vulnerabilities:",
vulnerabilities.len()
);
for (i, vulnerability) in vulnerabilities.iter().enumerate() {
println!(
" {}: ID = {}, Modified = {}",
i + 1,
vulnerability.id,
vulnerability.modified
);
}
}
Err(e) => {
eprintln!("Error loading directory: {}", 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_dir --features local -- <path> [recursive]");
}