about summary refs log tree commit diff
path: root/tvix/glue/src/lib.rs
blob: 8f72424d59ccf01af1ecd7c3770c9b626160c8f1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
pub mod builtins;
pub mod fetchers;
pub mod known_paths;
pub mod tvix_build;
pub mod tvix_io;
pub mod tvix_store_io;

mod fetchurl;

// Used as user agent in various HTTP Clients
const USER_AGENT: &str = concat!(env!("CARGO_PKG_NAME"), "/", env!("CARGO_PKG_VERSION"));

#[cfg(test)]
mod tests;

/// Tell the Evaluator to resolve `<nix>` to the path `/__corepkgs__`,
/// which has special handling in [tvix_io::TvixIO].
/// This is used in nixpkgs to import `fetchurl.nix` from `<nix>`.
pub fn configure_nix_path<'co, 'ro, 'env, IO>(
    eval_builder: tvix_eval::EvaluationBuilder<'co, 'ro, 'env, IO>,
    nix_search_path: &Option<String>,
) -> tvix_eval::EvaluationBuilder<'co, 'ro, 'env, IO> {
    eval_builder.nix_path(
        nix_search_path
            .as_ref()
            .map(|p| format!("nix=/__corepkgs__:{}", p))
            .or_else(|| Some("nix=/__corepkgs__".to_string())),
    )
}