nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at devShellTools-shell 102 lines 2.9 kB view raw
1{ 2 nix-update-script, 3 stdenvNoCC, 4 lib, 5 php, 6}: 7 8let 9 buildComposerProjectOverride = 10 finalAttrs: previousAttrs: 11 12 let 13 phpDrv = finalAttrs.php or php; 14 composer = finalAttrs.composer or phpDrv.packages.composer-local-repo-plugin; 15 in 16 { 17 composerLock = previousAttrs.composerLock or null; 18 composerNoDev = previousAttrs.composerNoDev or true; 19 composerNoPlugins = previousAttrs.composerNoPlugins or true; 20 composerNoScripts = previousAttrs.composerNoScripts or true; 21 composerStrictValidation = previousAttrs.composerStrictValidation or true; 22 23 nativeBuildInputs = (previousAttrs.nativeBuildInputs or [ ]) ++ [ 24 composer 25 phpDrv 26 phpDrv.composerHooks.composerInstallHook 27 ]; 28 29 buildInputs = (previousAttrs.buildInputs or [ ]) ++ [ phpDrv ]; 30 31 patches = previousAttrs.patches or [ ]; 32 strictDeps = previousAttrs.strictDeps or true; 33 34 # Should we keep these empty phases? 35 configurePhase = 36 previousAttrs.configurePhase or '' 37 runHook preConfigure 38 39 runHook postConfigure 40 ''; 41 42 buildPhase = 43 previousAttrs.buildPhase or '' 44 runHook preBuild 45 46 runHook postBuild 47 ''; 48 49 doCheck = previousAttrs.doCheck or true; 50 checkPhase = 51 previousAttrs.checkPhase or '' 52 runHook preCheck 53 54 runHook postCheck 55 ''; 56 57 installPhase = 58 previousAttrs.installPhase or '' 59 runHook preInstall 60 61 runHook postInstall 62 ''; 63 64 doInstallCheck = previousAttrs.doInstallCheck or false; 65 installCheckPhase = 66 previousAttrs.installCheckPhase or '' 67 runHook preInstallCheck 68 69 runHook postInstallCheck 70 ''; 71 72 composerRepository = 73 previousAttrs.composerRepository or (phpDrv.mkComposerRepository { 74 inherit composer; 75 inherit (finalAttrs) 76 patches 77 pname 78 src 79 vendorHash 80 version 81 ; 82 83 composerLock = previousAttrs.composerLock or null; 84 composerNoDev = previousAttrs.composerNoDev or true; 85 composerNoPlugins = previousAttrs.composerNoPlugins or true; 86 composerNoScripts = previousAttrs.composerNoScripts or true; 87 composerStrictValidation = previousAttrs.composerStrictValidation or true; 88 }); 89 90 # Projects providing a lockfile from upstream can be automatically updated. 91 passthru = previousAttrs.passthru or { } // { 92 updateScript = 93 previousAttrs.passthru.updateScript 94 or (if finalAttrs.composerRepository.composerLock == null then nix-update-script { } else null); 95 }; 96 97 meta = previousAttrs.meta or { } // { 98 platforms = lib.platforms.all; 99 }; 100 }; 101in 102args: (stdenvNoCC.mkDerivation args).overrideAttrs buildComposerProjectOverride