#path #linux #binary #where

whereismybin

Locates installed executable in PATH

1 unstable release

0.0.1 Dec 23, 2022

#7 in #where

Apache-2.0

6KB

whereismybin

Locates installed executable inside directories specified in the PATH environment variable.

The goals of this implementations are:

  • No dependencies except the standard library.
  • No unsafe code, no syscalls, no calls to libc.
  • Compatibility with Miri.

Example

whereismybin can be used as a library. Example:

use std::process::Command;

use whereismybin::whereismybin;

let my_tool = whereismybin("my-tool").expect("Could not find my-tool");
let output = Command::new(my_tool)
    .arg("--some-arg")
    .output()
    .expect("Failed to execute process");
let content = output.stdout;

Why not which-rs?

The which-rs crate is great, but unfortunately it doesn't run on Miri and depends on libc crate. whereismybin aims to provide more lightweight alternative.

License: Apache-2.0


lib.rs:

Locates installed executable inside directories specified in the PATH environment variable.

The goals of this implementations are:

  • No dependencies except the standard library.
  • No unsafe code, no syscalls, no calls to libc.
  • Compatibility with Miri.

Example

whereismybin can be used as a library. Example:

use std::process::Command;

use whereismybin::whereismybin;

let my_tool = whereismybin("my-tool").expect("Could not find my-tool");
let output = Command::new(my_tool)
    .arg("--some-arg")
    .output()
    .expect("Failed to execute process");
let content = output.stdout;

Why not which-rs?

The which-rs crate is great, but unfortunately it doesn't run on Miri and depends on libc crate. whereismybin aims to provide more lightweight alternative.

No runtime deps