diff options
Diffstat (limited to 'tvix/glue/src/builtins/derivation.rs')
-rw-r--r-- | tvix/glue/src/builtins/derivation.rs | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/tvix/glue/src/builtins/derivation.rs b/tvix/glue/src/builtins/derivation.rs index 54bc7878bdd4..078cb0e1ffd1 100644 --- a/tvix/glue/src/builtins/derivation.rs +++ b/tvix/glue/src/builtins/derivation.rs @@ -316,8 +316,16 @@ pub(crate) mod derivation_builtins { output_names.push(output_name.to_str()?.to_owned()); } - // Add drv.environment[outputs] unconditionally. - insert_env(&mut drv, arg_name, output_names.join(" ").into())?; + match structured_attrs.as_mut() { + // add outputs to the json itself (as a list of strings) + Some(structured_attrs) => { + structured_attrs.insert(arg_name.into(), output_names.into()); + } + // add drv.environment["outputs"] as a space-separated list + None => { + insert_env(&mut drv, arg_name, output_names.join(" ").into())?; + } + } // drv.environment[$output_name] is added after the loop, // with whatever is in drv.outputs[$output_name]. } |