summary refs log tree commit diff
path: root/pkgs/build-support/mkshell
diff options
context:
space:
mode:
authorJonas Chevalier <zimbatm@zimbatm.com>2021-05-13 19:17:29 +0200
committerGitHub <noreply@github.com>2021-05-13 19:17:29 +0200
commitc6b62f2381571cc83c6c32ef4984fabcbb4ca892 (patch)
treeaf1d2c57ebaf61652faf6697bbc81044a0e27d88 /pkgs/build-support/mkshell
parent7693c5d59b01a50c4cb2c20c741f505c84f34677 (diff)
downloadnixpkgs-c6b62f2381571cc83c6c32ef4984fabcbb4ca892.tar
nixpkgs-c6b62f2381571cc83c6c32ef4984fabcbb4ca892.tar.gz
nixpkgs-c6b62f2381571cc83c6c32ef4984fabcbb4ca892.tar.bz2
nixpkgs-c6b62f2381571cc83c6c32ef4984fabcbb4ca892.tar.lz
nixpkgs-c6b62f2381571cc83c6c32ef4984fabcbb4ca892.tar.xz
nixpkgs-c6b62f2381571cc83c6c32ef4984fabcbb4ca892.tar.zst
nixpkgs-c6b62f2381571cc83c6c32ef4984fabcbb4ca892.zip
mkShell: introduce packages argument (#122180)
The distinction between the inputs doesn't really make sense in the
mkShell context.  Technically speaking, we should be using the
nativeBuildInputs most of the time.

So in order to make this function more beginner-friendly, add "packages"
as an attribute, that maps to nativeBuildInputs.

This commit also updates all the uses in nixpkgs.
Diffstat (limited to 'pkgs/build-support/mkshell')
-rw-r--r--pkgs/build-support/mkshell/default.nix24
1 files changed, 14 insertions, 10 deletions
diff --git a/pkgs/build-support/mkshell/default.nix b/pkgs/build-support/mkshell/default.nix
index a70dc0390cb..7ca4cc23c1d 100644
--- a/pkgs/build-support/mkshell/default.nix
+++ b/pkgs/build-support/mkshell/default.nix
@@ -3,18 +3,22 @@
 # 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 ? [],
-  ...
+  # a list of packages to add to the shell environment
+  packages ? [ ]
+, # propagate all the inputs from the given derivations
+  inputsFrom ? [ ]
+, buildInputs ? [ ]
+, nativeBuildInputs ? [ ]
+, propagatedBuildInputs ? [ ]
+, propagatedNativeBuildInputs ? [ ]
+, ...
 }@attrs:
 let
   mergeInputs = name: lib.concatLists (lib.catAttrs name
-    ([attrs] ++ inputsFrom));
+    ([ attrs ] ++ inputsFrom));
 
   rest = builtins.removeAttrs attrs [
+    "packages"
     "inputsFrom"
     "buildInputs"
     "nativeBuildInputs"
@@ -26,15 +30,15 @@ in
 
 stdenv.mkDerivation ({
   name = "nix-shell";
-  phases = ["nobuildPhase"];
+  phases = [ "nobuildPhase" ];
 
   buildInputs = mergeInputs "buildInputs";
-  nativeBuildInputs = mergeInputs "nativeBuildInputs";
+  nativeBuildInputs = packages ++ (mergeInputs "nativeBuildInputs");
   propagatedBuildInputs = mergeInputs "propagatedBuildInputs";
   propagatedNativeBuildInputs = mergeInputs "propagatedNativeBuildInputs";
 
   shellHook = lib.concatStringsSep "\n" (lib.catAttrs "shellHook"
-    (lib.reverseList inputsFrom ++ [attrs]));
+    (lib.reverseList inputsFrom ++ [ attrs ]));
 
   nobuildPhase = ''
     echo