use std::{ env::args, process::{ Command, Stdio } }; mod error; const CMD: &str = "/mnt/c/Windows/System32/cmd.exe"; pub fn main() { let args: Vec = args().collect(); if args.len() != 2 { error::arg_count(); } let target = &args[1]; let cmd = Command::new(CMD) .current_dir("/mnt/c/") .arg( format!("/C echo %{target}%") ) .output(); if let Ok(output) = cmd { if let Ok(stdout) = String::from_utf8(output.stdout) { // trim output let stdout = stdout.trim_end_matches("\"\r\n"); // catch empty variable case if stdout == format!("%{target}%") { error::not_found(&target); } // convert and write let path = stdout .replace("\\", "/") .replace("C:/", "/mnt/c/"); println!("{path}"); } } }