Prefix env vars for attrs.* files with NIX_

This commit is contained in:
Maximilian Bosch 2021-06-22 19:45:08 +02:00
parent a92245b110
commit 27ce722638
No known key found for this signature in database
GPG key ID: 091DBF4D1FC46B8E
5 changed files with 7 additions and 7 deletions

View file

@ -1092,10 +1092,10 @@ void LocalDerivationGoal::writeStructuredAttrs()
writeFile(tmpDir + "/.attrs.sh", rewriteStrings(jsonSh, inputRewrites)); writeFile(tmpDir + "/.attrs.sh", rewriteStrings(jsonSh, inputRewrites));
chownToBuilder(tmpDir + "/.attrs.sh"); chownToBuilder(tmpDir + "/.attrs.sh");
env["ATTRS_SH_FILE"] = tmpDir + "/.attrs.sh"; env["NIX_ATTRS_SH_FILE"] = tmpDir + "/.attrs.sh";
writeFile(tmpDir + "/.attrs.json", rewriteStrings(json.dump(), inputRewrites)); writeFile(tmpDir + "/.attrs.json", rewriteStrings(json.dump(), inputRewrites));
chownToBuilder(tmpDir + "/.attrs.json"); chownToBuilder(tmpDir + "/.attrs.json");
env["ATTRS_JSON_FILE"] = tmpDir + "/.attrs.json"; env["NIX_ATTRS_JSON_FILE"] = tmpDir + "/.attrs.json";
} }
} }

View file

@ -454,8 +454,8 @@ static void main_nix_build(int argc, char * * argv)
auto attrsSH = (Path) tmpDir + "/.attrs.sh"; auto attrsSH = (Path) tmpDir + "/.attrs.sh";
writeFile(attrsSH, structuredAttrsRC); writeFile(attrsSH, structuredAttrsRC);
env["ATTRS_SH_FILE"] = attrsSH; env["NIX_ATTRS_SH_FILE"] = attrsSH;
env["ATTRS_JSON_FILE"] = attrsJSON; env["NIX_ATTRS_JSON_FILE"] = attrsJSON;
keepTmp = true; keepTmp = true;
} }
} }

View file

@ -10,7 +10,7 @@ let pkgs = rec {
done done
# mimic behavior of stdenv for `$out` etc. for structured attrs. # mimic behavior of stdenv for `$out` etc. for structured attrs.
if [ -n "''${ATTRS_SH_FILE}" ]; then if [ -n "''${NIX_ATTRS_SH_FILE}" ]; then
for o in "''${!outputs[@]}"; do for o in "''${!outputs[@]}"; do
eval "''${o}=''${outputs[$o]}" eval "''${o}=''${outputs[$o]}"
export "''${o}" export "''${o}"

View file

@ -36,7 +36,7 @@ mkDerivation {
echo bar > $dest echo bar > $dest
echo foo > $dest2 echo foo > $dest2
json=$(cat $ATTRS_JSON_FILE) json=$(cat $NIX_ATTRS_JSON_FILE)
[[ $json =~ '"narHash":"sha256:1r7yc43zqnzl5b0als5vnyp649gk17i37s7mj00xr8kc47rjcybk"' ]] [[ $json =~ '"narHash":"sha256:1r7yc43zqnzl5b0als5vnyp649gk17i37s7mj00xr8kc47rjcybk"' ]]
[[ $json =~ '"narSize":288' ]] [[ $json =~ '"narSize":288' ]]
[[ $json =~ '"closureSize":288' ]] [[ $json =~ '"closureSize":288' ]]

View file

@ -11,7 +11,7 @@ nix-build structured-attrs.nix -A all -o $TEST_ROOT/result
export NIX_BUILD_SHELL=$SHELL export NIX_BUILD_SHELL=$SHELL
env NIX_PATH=nixpkgs=shell.nix nix-shell structured-attrs-shell.nix \ env NIX_PATH=nixpkgs=shell.nix nix-shell structured-attrs-shell.nix \
--run 'test -e .attrs.json; test "3" = "$(jq ".my.list|length" < $ATTRS_JSON_FILE)"' --run 'test -e .attrs.json; test "3" = "$(jq ".my.list|length" < $NIX_ATTRS_JSON_FILE)"'
# `nix develop` is a slightly special way of dealing with environment vars, it parses # `nix develop` is a slightly special way of dealing with environment vars, it parses
# these from a shell-file exported from a derivation. This is to test especially `outputs` # these from a shell-file exported from a derivation. This is to test especially `outputs`