about summary refs log tree commit diff
path: root/pkgs/build-support/php
diff options
context:
space:
mode:
authorPol Dellaiera <pol.dellaiera@protonmail.com>2023-08-21 12:19:17 +0200
committerPol Dellaiera <pol.dellaiera@protonmail.com>2023-09-13 17:08:04 +0200
commit3eb168da9243989a63dfd4e2c17c52f8c133247b (patch)
treed54a546577ff7c81883c4ff819071311c71f795a /pkgs/build-support/php
parent1173a34d151b2797a4933a3eb2446e8dbdffcb1e (diff)
build-support/php: add `composerNoDev`, `composerNoPlugins` and `composerNoScripts` attributes
Diffstat (limited to 'pkgs/build-support/php')
-rw-r--r--pkgs/build-support/php/build-composer-project.nix13
-rw-r--r--pkgs/build-support/php/build-composer-repository.nix7
-rw-r--r--pkgs/build-support/php/hooks/composer-install-hook.sh14
-rw-r--r--pkgs/build-support/php/hooks/composer-repository-hook.sh11
4 files changed, 34 insertions, 11 deletions
diff --git a/pkgs/build-support/php/build-composer-project.nix b/pkgs/build-support/php/build-composer-project.nix
index b0be330205fa3..6aecf43457730 100644
--- a/pkgs/build-support/php/build-composer-project.nix
+++ b/pkgs/build-support/php/build-composer-project.nix
@@ -7,9 +7,13 @@ let
       phpDrv = finalAttrs.php or php;
       composer = finalAttrs.composer or phpDrv.packages.composer;
       composer-local-repo-plugin = callPackage ./pkgs/composer-local-repo-plugin.nix { };
-      composerLock = finalAttrs.composerLock or null;
     in
     {
+      composerLock = previousAttrs.composerLock or null;
+      composerNoDev = previousAttrs.composerNoDev or true;
+      composerNoPlugins = previousAttrs.composerNoPlugins or true;
+      composerNoScripts = previousAttrs.composerNoScripts or true;
+
       nativeBuildInputs = (previousAttrs.nativeBuildInputs or [ ]) ++ [
         composer
         composer-local-repo-plugin
@@ -50,8 +54,13 @@ let
       '';
 
       composerRepository = phpDrv.mkComposerRepository {
-        inherit composer composer-local-repo-plugin composerLock;
+        inherit composer composer-local-repo-plugin;
         inherit (finalAttrs) patches pname src vendorHash version;
+
+        composerLock = previousAttrs.composerLock or null;
+        composerNoDev = previousAttrs.composerNoDev or true;
+        composerNoPlugins = previousAttrs.composerNoPlugins or true;
+        composerNoScripts = previousAttrs.composerNoScripts or true;
       };
 
       meta = previousAttrs.meta or { } // {
diff --git a/pkgs/build-support/php/build-composer-repository.nix b/pkgs/build-support/php/build-composer-repository.nix
index 86362f151f096..30b0b48de7515 100644
--- a/pkgs/build-support/php/build-composer-repository.nix
+++ b/pkgs/build-support/php/build-composer-repository.nix
@@ -25,7 +25,14 @@ let
     assert (lib.assertMsg (previousAttrs ? vendorHash) "mkComposerRepository expects vendorHash argument.");
     assert (lib.assertMsg (previousAttrs ? version) "mkComposerRepository expects version argument.");
     assert (lib.assertMsg (previousAttrs ? pname) "mkComposerRepository expects pname argument.");
+    assert (lib.assertMsg (previousAttrs ? composerNoDev) "mkComposerRepository expects composerNoDev argument.");
+    assert (lib.assertMsg (previousAttrs ? composerNoPlugins) "mkComposerRepository expects composerNoPlugins argument.");
+    assert (lib.assertMsg (previousAttrs ? composerNoScripts) "mkComposerRepository expects composerNoScripts argument.");
     {
+      composerNoDev = previousAttrs.composerNoDev or true;
+      composerNoPlugins = previousAttrs.composerNoPlugins or true;
+      composerNoScripts = previousAttrs.composerNoScripts or true;
+
       name = "${previousAttrs.pname}-${previousAttrs.version}-composer-repository";
 
       # See https://github.com/NixOS/nix/issues/6660
diff --git a/pkgs/build-support/php/hooks/composer-install-hook.sh b/pkgs/build-support/php/hooks/composer-install-hook.sh
index 2d5c90ea3b2fa..9f23b90fa401d 100644
--- a/pkgs/build-support/php/hooks/composer-install-hook.sh
+++ b/pkgs/build-support/php/hooks/composer-install-hook.sh
@@ -1,6 +1,8 @@
-declare composerHomeDir
 declare composerRepository
 declare version
+declare composerNoDev
+declare composerNoPlugins
+declare composerNoScripts
 
 preConfigureHooks+=(composerInstallConfigureHook)
 preBuildHooks+=(composerInstallBuildHook)
@@ -59,8 +61,9 @@ composerInstallBuildHook() {
       --no-ansi \
       --no-install \
       --no-interaction \
-      --no-plugins \
-      --no-scripts \
+      ${composerNoDev:+--no-dev} \
+      ${composerNoPlugins:+--no-plugins} \
+      ${composerNoScripts:+--no-scripts} \
       update
 
     echo "Finished composerInstallBuildHook"
@@ -88,8 +91,9 @@ composerInstallInstallHook() {
     composer \
       --no-ansi \
       --no-interaction \
-      --no-scripts \
-      --no-plugins \
+      ${composerNoDev:+--no-dev} \
+      ${composerNoPlugins:+--no-plugins} \
+      ${composerNoScripts:+--no-scripts} \
       install
 
     # Remove packages.json, we don't need it in the store.
diff --git a/pkgs/build-support/php/hooks/composer-repository-hook.sh b/pkgs/build-support/php/hooks/composer-repository-hook.sh
index 707c944522563..057acf1fcc30e 100644
--- a/pkgs/build-support/php/hooks/composer-repository-hook.sh
+++ b/pkgs/build-support/php/hooks/composer-repository-hook.sh
@@ -1,6 +1,8 @@
-declare composerHomeDir
 declare composerLock
 declare version
+declare composerNoDev
+declare composerNoPlugins
+declare composerNoScripts
 
 preConfigureHooks+=(composerRepositoryConfigureHook)
 preBuildHooks+=(composerRepositoryBuildHook)
@@ -20,8 +22,9 @@ composerRepositoryConfigureHook() {
             --no-ansi \
             --no-install \
             --no-interaction \
-            --no-plugins \
-            --no-scripts \
+            ${composerNoDev:+--no-dev} \
+            ${composerNoPlugins:+--no-plugins} \
+            ${composerNoScripts:+--no-scripts} \
             update
         echo "Using an autogenerated composer.lock file."
     fi
@@ -38,7 +41,7 @@ composerRepositoryBuildHook() {
     # The command 'build-local-repo' is provided by the Composer plugin
     # nix-community/composer-local-repo-plugin.
     COMPOSER_CACHE_DIR=/dev/null \
-    composer-local-repo-plugin --no-ansi build-local-repo -r repository
+    composer-local-repo-plugin --no-ansi build-local-repo ${composerNoDev:+--no-dev} -r repository
 
     echo "Finished composerRepositoryBuildHook"
 }