diff options
author | zimbatm <zimbatm@zimbatm.com> | 2017-12-20 23:42:07 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-12-20 23:42:07 +0000 |
commit | adc5c9b83df203c9e425efe00f9a788ed3554c2d (patch) | |
tree | 04ce943811c6bfffa250069666d38cff2301d0cf /pkgs | |
parent | 02d361cea9d20fe4746092a9ced207b1d0dcd9e9 (diff) | |
download | nixlib-adc5c9b83df203c9e425efe00f9a788ed3554c2d.tar nixlib-adc5c9b83df203c9e425efe00f9a788ed3554c2d.tar.gz nixlib-adc5c9b83df203c9e425efe00f9a788ed3554c2d.tar.bz2 nixlib-adc5c9b83df203c9e425efe00f9a788ed3554c2d.tar.lz nixlib-adc5c9b83df203c9e425efe00f9a788ed3554c2d.tar.xz nixlib-adc5c9b83df203c9e425efe00f9a788ed3554c2d.tar.zst nixlib-adc5c9b83df203c9e425efe00f9a788ed3554c2d.zip |
mkShell: add builder (#30975)
Diffstat (limited to 'pkgs')
-rw-r--r-- | pkgs/build-support/mkshell/default.nix | 46 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 2 |
2 files changed, 48 insertions, 0 deletions
diff --git a/pkgs/build-support/mkshell/default.nix b/pkgs/build-support/mkshell/default.nix new file mode 100644 index 000000000000..a98b4affacba --- /dev/null +++ b/pkgs/build-support/mkshell/default.nix @@ -0,0 +1,46 @@ +{ lib, stdenv }: + +# A special kind of derivation that is only meant to be consumed by the +# nix-shell. +{ + inputsFrom ? [], # a list of derivations whose inputs will be made available to the environment + buildInputs ? [], + nativeBuildInputs ? [], + propagatedBuildInputs ? [], + propagatedNativeBuildInputs ? [], + ... +}@attrs: +let + mergeInputs = name: + let + op = item: sum: sum ++ item."${name}" or []; + nul = []; + list = [attrs] ++ inputsFrom; + in + lib.foldr op nul list; + + rest = builtins.removeAttrs attrs [ + "inputsFrom" + "buildInputs" + "nativeBuildInputs" + "propagatedBuildInputs" + "propagatedNativeBuildInputs" + ]; +in + +stdenv.mkDerivation ({ + name = "nix-shell"; + phases = ["nobuildPhase"]; + + buildInputs = mergeInputs "buildInputs"; + nativeBuildInputs = mergeInputs "nativeBuildInputs"; + propagatedBuildInputs = mergeInputs "propagatedBuildInputs"; + propagatedNativeBuildInputs = mergeInputs "propagatedNativeBuildInputs"; + + nobuildPhase = '' + echo + echo "This derivation is not meant to be built, aborting"; + echo + exit 1 + ''; +} // rest) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index bf003b959a2b..974acdfa047d 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -311,6 +311,8 @@ with pkgs; inherit kernel rootModules allowMissing; }; + mkShell = callPackage ../build-supports/mkshell { }; + nixBufferBuilders = import ../build-support/emacs/buffer.nix { inherit (pkgs) lib writeText; inherit (emacsPackagesNg) inherit-local; }; pathsFromGraph = ../build-support/kernel/paths-from-graph.pl; |