java-manager 0.2.0

A Rust library for managing and locating Java installations
Documentation
use java_manager::{JavaInfo, deep_search, quick_search};
use std::io::{self, Write};

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let installations: Vec<JavaInfo>;

    let mut input = String::new();
    loop {
        print!("Do you want to search for Java installations using quick or deep search? (q/d) ");
        io::stdout().flush().unwrap();
        input.clear();
        io::stdin().read_line(&mut input)?;
        match input.to_lowercase().as_str().trim() {
            "q" => installations = quick_search()?,
            "d" => installations = deep_search()?,
            _ => {
                println!("Invalid input. Please enter 'q' or 'd'.");
                continue;
            }
        }
        break;
    }

    println!("Found {} Java installation(s):", installations.len());
    println!("{}", "=".repeat(50));

    for (i, java) in installations.iter().enumerate() {
        println!("{}.\tName: \t\t{}", i + 1, java.name);
        println!("\tVersion: \t{}", java.version);
        println!("\tPath: \t\t{}", java.path.display());
        println!("\tVendor: \t{}", java.vendor);
        println!("\tArchitecture: \t{}", java.architecture);
        println!("\tJava Home: \t{}", java.java_home.display());
        println!("{}", "-".repeat(40));
    }

    Ok(())
}