in reverie-process/src/builder.rs [736:758]
fn find_program_in_paths<I, S>(program: &Path, iter: I) -> Option<PathBuf>
where
I: IntoIterator<Item = S>,
S: AsRef<Path>,
{
for path in iter.into_iter() {
let path = path.as_ref().join(program);
if let Ok(metadata) = path.metadata() {
if metadata.is_file() {
if metadata.permissions().mode() & 0o111 != 0 {
return Some(path);
} else {
continue;
}
#[cfg(not(unix))]
return Some(path);
}
}
}
None
}