Inspect constructor values and contexts without unrelated derivation closures (#931)
This commit is contained in:
parent
61881f9cda
commit
4f672d027d
@@ -0,0 +1,34 @@
|
||||
# Read actual constructor attributes as comparison data. Their values AND
|
||||
# dependency contexts remain visible; none is substituted for a build input.
|
||||
derivation:
|
||||
let
|
||||
fields = [
|
||||
"name"
|
||||
"system"
|
||||
"src"
|
||||
"stdenv"
|
||||
"nativeBuildInputs"
|
||||
"buildInputs"
|
||||
"propagatedBuildInputs"
|
||||
"propagatedNativeBuildInputs"
|
||||
"configurePhase"
|
||||
"buildPhase"
|
||||
"checkPhase"
|
||||
"installPhase"
|
||||
"doCheck"
|
||||
"strictDeps"
|
||||
"outputs"
|
||||
"__structuredAttrs"
|
||||
];
|
||||
selected = builtins.intersectAttrs (builtins.listToAttrs (
|
||||
map (name: {
|
||||
inherit name;
|
||||
value = null;
|
||||
}) fields
|
||||
)) derivation;
|
||||
in
|
||||
builtins.mapAttrs (_: value: {
|
||||
type = builtins.typeOf value;
|
||||
value = builtins.unsafeDiscardStringContext (toString value);
|
||||
context = builtins.getContext (toString value);
|
||||
}) selected
|
||||
Reference in New Issue
Block a user