use crate::path;
pub fn run() {
println!("\n🩺 sgdkx v{}", env!("CARGO_PKG_VERSION"));
#[cfg(not(target_os = "windows"))]
check_tool("make");
if path::is_installed() {
let sgdk_dir = path::sgdk_dir();
let config_base = path::config_dir();
println!("\n📝 sgdkx install: {}", config_base.display());
println!("SGDK Path : {}", sgdk_dir.display());
println!(
"Version : {}",
path::installed_version().unwrap_or_else(|| "Unknown".to_string())
);
match path::toolchain_dir() {
Some(tc) => println!("Toolchain : {}", tc.display()),
None => println!("Toolchain : bundled (Windows)"),
}
match path::jre_dir() {
Some(j) => println!("JRE (bundled) : {}", j.display()),
None => match which::which("java") {
Ok(p) => println!("JRE : system java ({})", p.display()),
Err(_) => println!("JRE : ❌ none (no bundled JRE, no system java)"),
},
}
match crate::commands::blastem::find_blastem(&config_base) {
Some(p) => println!("BlastEm : {}", p.display()),
None => println!("BlastEm : Not installed"),
}
match crate::commands::gdb::find_gdb(&config_base) {
Some(p) => println!("GDB : {}", p.display()),
None => println!("GDB : Not installed"),
}
let doc_index = sgdk_dir.join("doc").join("html").join("index.html");
if doc_index.exists() {
println!(
"\n📄 SGDK documentation: {}",
doc_index
.canonicalize()
.expect("Failed to canonicalize path")
.to_str()
.unwrap()
.replace(r"\\?\", "")
);
} else {
println!("⚠️ SGDK documentation not found.");
}
} else {
println!("\n❌ Not installed. Please run `sgdkx install`.");
}
}
#[cfg(not(target_os = "windows"))] fn check_tool(tool: &str) {
match which::which(tool) {
Ok(path) => println!("✅ {}: {}", tool, path.display()),
Err(_) => println!("❌ {}: not found", tool),
}
}