File: README.md

package info (click to toggle)
rust-pathsearch 0.2.0-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 88 kB
  • sloc: makefile: 4
file content (45 lines) | stat: -rw-r--r-- 1,341 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# pathsearch

This crate provides functions that can be used to search for an
executable based on the PATH environment on both POSIX and Windows
systems.

`find_executable_in_path` is the most convenient function exported
by this crate; given the name of an executable, it will yield the
absolute path of the first matching file.

```rust
use pathsearch::find_executable_in_path;

if let Some(exe) = find_executable_in_path("ls") {
  println!("Found ls at {}", exe.display());
}
```

`PathSearcher` is platform-independent struct that encompasses the
path searching algorithm used by `find_executable_in_path`.  Construct
it by passing in the PATH and PATHEXT (for Windows) environment variables
and iterate it to incrementally produce all candidate results.  This
is useful when implementing utilities such as `which` that want to show
all possible paths.

```rust
use pathsearch::PathSearcher;
use std::ffi::OsString;

let path = std::env::var_os("PATH");
let path_ext = std::env::var_os("PATHEXT");

for exe in PathSearcher::new(
    "zsh",
    path.as_ref().map(OsString::as_os_str),
    path_ext.as_ref().map(OsString::as_os_str),
) {
    println!("{}", exe.display());
}
```

`SimplePathSearcher` is a simple iterator that can be used to search
an arbitrary path for an arbitrary file that doesn't have to be executable.

License: MIT