Propogate use_sudo pattern to all traits that podman can be used in
This commit is contained in:
parent
430d18de8a
commit
883090ee85
14 changed files with 346 additions and 116 deletions
|
|
@ -20,11 +20,13 @@ lenient_semver = "0.4"
|
|||
process_control = { version = "4", features = ["crossbeam-channel"] }
|
||||
which = "7"
|
||||
|
||||
cached.workspace = true
|
||||
chrono.workspace = true
|
||||
clap = { workspace = true, features = ["derive", "env"] }
|
||||
comlexr.workspace = true
|
||||
log.workspace = true
|
||||
miette.workspace = true
|
||||
nix = { workspace = true, features = ["user"] }
|
||||
semver = { workspace = true, features = ["serde"] }
|
||||
serde.workspace = true
|
||||
serde_json.workspace = true
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ pub mod test_utils;
|
|||
pub mod traits;
|
||||
|
||||
use std::{
|
||||
ops::Not,
|
||||
os::unix::ffi::OsStrExt,
|
||||
path::{Path, PathBuf},
|
||||
thread,
|
||||
|
|
@ -20,6 +21,7 @@ use blake2::{
|
|||
digest::{Update, VariableOutput},
|
||||
Blake2bVar,
|
||||
};
|
||||
use cached::proc_macro::once;
|
||||
use chrono::Local;
|
||||
use comlexr::cmd;
|
||||
use format_serde_error::SerdeError;
|
||||
|
|
@ -129,3 +131,18 @@ pub fn get_env_var(key: &str) -> Result<String> {
|
|||
.into_diagnostic()
|
||||
.with_context(|| format!("Failed to get {key}'"))
|
||||
}
|
||||
|
||||
/// Checks if an environment variable is set and isn't empty.
|
||||
#[must_use]
|
||||
pub fn has_env_var(key: &str) -> bool {
|
||||
get_env_var(key).is_ok_and(|v| v.is_empty().not())
|
||||
}
|
||||
|
||||
/// Checks if the process is running as root.
|
||||
///
|
||||
/// This call is cached to reduce syscalls.
|
||||
#[once]
|
||||
#[must_use]
|
||||
pub fn running_as_root() -> bool {
|
||||
nix::unistd::Uid::effective().is_root()
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue