mod attic;
mod error;
mod flake;
mod logic;
pub use attic::{AtticClient, AtticConfig};
pub use error::NixError;
pub use flake::{
generate_environment_hash, get_flake_metadata, FlakeMetadata, HashSource, NixHash,
};
pub use logic::generate_logic_hash;
pub type Result<T> = std::result::Result<T, NixError>;
pub fn is_nix_available() -> bool {
std::process::Command::new("nix")
.arg("--version")
.output()
.map(|o| o.status.success())
.unwrap_or(false)
}
pub fn is_attic_available() -> bool {
std::process::Command::new("attic")
.arg("--version")
.output()
.map(|o| o.status.success())
.unwrap_or(false)
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_nix_availability_check() {
let _ = is_nix_available();
}
#[test]
fn test_attic_availability_check() {
let _ = is_attic_available();
}
}