From 6d724a8f331f4b2a8f1a001e990cf6129dc50b00 Mon Sep 17 00:00:00 2001 From: Michael Davis Date: Tue, 23 Jan 2024 09:29:07 -0500 Subject: Re-export `which` from `helix-stdx::env` We use `which::which` in many crates, so `which` was a separate dependency across all of them. We can centralize `which` into the stdx crate so it's easy for all crates to depend on it. I also moved the rest of `helix-view/src/env.rs` into helix-stdx's `env` module since it only contained a thin wrapper around `which` and `std::env`. --- helix-stdx/Cargo.toml | 1 + helix-stdx/src/env.rs | 10 ++++++++++ 2 files changed, 11 insertions(+) (limited to 'helix-stdx') diff --git a/helix-stdx/Cargo.toml b/helix-stdx/Cargo.toml index 9b4de9fe..e77f8b91 100644 --- a/helix-stdx/Cargo.toml +++ b/helix-stdx/Cargo.toml @@ -15,6 +15,7 @@ homepage.workspace = true dunce = "1.0" etcetera = "0.8" ropey = { version = "1.6.1", default-features = false } +which = "6.0" [dev-dependencies] tempfile = "3.9" diff --git a/helix-stdx/src/env.rs b/helix-stdx/src/env.rs index 864ba828..3676727f 100644 --- a/helix-stdx/src/env.rs +++ b/helix-stdx/src/env.rs @@ -1,3 +1,5 @@ +pub use which::which; + use std::{ path::{Path, PathBuf}, sync::RwLock, @@ -30,6 +32,14 @@ pub fn set_current_working_dir(path: impl AsRef) -> std::io::Result<()> { Ok(()) } +pub fn env_var_is_set(env_var_name: &str) -> bool { + std::env::var_os(env_var_name).is_some() +} + +pub fn binary_exists(binary_name: &str) -> bool { + which::which(binary_name).is_ok() +} + #[cfg(test)] mod tests { use super::{current_working_dir, set_current_working_dir}; -- cgit v1.2.3-70-g09d2