Merge pull request #63701 from basvandijk/composable-mkshell-shellHook

Improve composability of mkShell
This commit is contained in:
zimbatm 2019-06-23 22:39:54 +00:00 committed by GitHub
commit 7f7687e79f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -11,13 +11,8 @@
... ...
}@attrs: }@attrs:
let let
mergeInputs = name: mergeInputs = name: lib.concatLists (lib.catAttrs name
let ([attrs] ++ inputsFrom));
op = item: sum: sum ++ item."${name}" or [];
nul = [];
list = [attrs] ++ inputsFrom;
in
lib.foldr op nul list;
rest = builtins.removeAttrs attrs [ rest = builtins.removeAttrs attrs [
"inputsFrom" "inputsFrom"
@ -25,6 +20,7 @@ let
"nativeBuildInputs" "nativeBuildInputs"
"propagatedBuildInputs" "propagatedBuildInputs"
"propagatedNativeBuildInputs" "propagatedNativeBuildInputs"
"shellHook"
]; ];
in in
@ -37,6 +33,9 @@ stdenv.mkDerivation ({
propagatedBuildInputs = mergeInputs "propagatedBuildInputs"; propagatedBuildInputs = mergeInputs "propagatedBuildInputs";
propagatedNativeBuildInputs = mergeInputs "propagatedNativeBuildInputs"; propagatedNativeBuildInputs = mergeInputs "propagatedNativeBuildInputs";
shellHook = lib.concatStringsSep "\n" (lib.catAttrs "shellHook"
(lib.reverseList inputsFrom ++ [attrs]));
nobuildPhase = '' nobuildPhase = ''
echo echo
echo "This derivation is not meant to be built, aborting"; echo "This derivation is not meant to be built, aborting";