Files
sausage/userland/brush/lookup.rs
T

29 lines
839 B
Rust

/// Resolve ordinary files before the WASI suffix in each PATH folder.
pub fn resolve_executable(path: std::path::PathBuf) -> Option<std::path::PathBuf> {
if path.is_file() {
return Some(path);
}
let mut name = path.into_os_string();
name.push(".wasm");
let path = std::path::PathBuf::from(name);
path.is_file().then_some(path)
}
pub(crate) fn resolve_executable_path(
path: std::path::PathBuf,
working_dir: &std::path::Path,
) -> std::path::PathBuf {
let absolute = working_dir.join(&path);
if absolute.is_file() {
return path;
}
let mut name = absolute.into_os_string();
name.push(".wasm");
if std::path::PathBuf::from(name).is_file() {
let mut name = path.into_os_string();
name.push(".wasm");
name.into()
} else {
path
}
}