use std::path::PathBuf;
mod config;
pub use config::{Config, Derivation};
pub mod exprs;
#[derive(Debug)]
pub enum Error {
NixNotAvailable,
BuildFailed,
UnknownOutput,
}
type Result<T> = std::result::Result<T, Error>;
const NIX_BIN_NAME: &str = "nix";
pub fn is_nix_available() -> Option<PathBuf> {
std::env::var_os("NIX")
.map(PathBuf::from)
.or_else(|| which::which(NIX_BIN_NAME).ok())
.and_then(|nix| {
if nix.try_exists().ok().unwrap_or_default() {
Some(nix)
} else {
None
}
})
}
pub fn build() -> Result<Vec<Derivation>> {
Config::new().build()
}