29 lines
839 B
Rust
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
|
|
}
|
|
}
|