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));
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));
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";
writeFile(attrsSH, structuredAttrsRC);
env["ATTRS_SH_FILE"] = attrsSH;
env["ATTRS_JSON_FILE"] = attrsJSON;
env["NIX_ATTRS_SH_FILE"] = attrsSH;
env["NIX_ATTRS_JSON_FILE"] = attrsJSON;
keepTmp = true;
}
}

View file

@ -10,7 +10,7 @@ let pkgs = rec {
done
# 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
eval "''${o}=''${outputs[$o]}"
export "''${o}"

View file

@ -36,7 +36,7 @@ mkDerivation {
echo bar > $dest
echo foo > $dest2
json=$(cat $ATTRS_JSON_FILE)
json=$(cat $NIX_ATTRS_JSON_FILE)
[[ $json =~ '"narHash":"sha256:1r7yc43zqnzl5b0als5vnyp649gk17i37s7mj00xr8kc47rjcybk"' ]]
[[ $json =~ '"narSize":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
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
# these from a shell-file exported from a derivation. This is to test especially `outputs`