directory_scan/
directory_scan.rs1use execheck::{scan_directory, print_report, OutputFormat, ScanOptions, FileFilter};
7use std::path::PathBuf;
8
9fn main() -> Result<(), Box<dyn std::error::Error>> {
10 let options = ScanOptions {
12 recursive: false, issues_only: true, strict: false, file_filter: FileFilter::All, one_filesystem: false, };
18
19 let scan_path = PathBuf::from("/usr/bin");
21 println!("Scanning directory: {} (issues only)", scan_path.display());
22
23 match scan_directory(&scan_path, &options) {
24 Ok(report) => {
25 println!("\n=== Scan Summary ===");
26 println!("Total files analyzed: {}", report.summary.total_files);
27 println!("Secure files: {}", report.summary.secure_files);
28 println!("Files with issues: {}", report.summary.insecure_files);
29 println!("Unsupported files: {}", report.summary.unsupported_files);
30
31 if report.summary.insecure_files > 0 {
32 println!("\n=== Files with Security Issues ===");
33 print_report(&report, &OutputFormat::Human, None)?;
34 } else {
35 println!("\nAll analyzed files have good security posture! ✓");
36 }
37 }
38 Err(e) => {
39 eprintln!("Failed to scan directory: {}", e);
40 std::process::exit(1);
41 }
42 }
43
44 Ok(())
45}