Merge master into staging-next
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# Builder for Agda packages.
|
||||
|
||||
{ stdenv, lib, self, Agda, runCommandNoCC, makeWrapper, writeText, mkShell, ghcWithPackages, nixosTests }:
|
||||
{ stdenv, lib, self, Agda, runCommandNoCC, makeWrapper, writeText, ghcWithPackages, nixosTests }:
|
||||
|
||||
with lib.strings;
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user