summaryrefslogtreecommitdiff
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-10 12:13:24 +0200
commitf9e0b70b3deb24a16fca9670b8b213955fa144da (patch)
tree554f8416e8e5475c0cc53bbb11a86a38d37d7258
parentbuilder: move internal tools in `php/build-support/php/pkgs` (diff)
downloadnixpkgs-origin/php/add-new-builder-only.tar.gz
feat: add `composerNoDev`, `composerNoPlugins` and `composerNoScripts` attributesorigin/php/add-new-builder-only
-rw-r--r--pkgs/build-support/php/build-composer-project.nix9
-rw-r--r--pkgs/build-support/php/build-composer-repository.nix10
-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, 10 deletions
diff --git a/pkgs/build-support/php/build-composer-project.nix b/pkgs/build-support/php/build-composer-project.nix
index b0be330205fa..e6fc4150fdbb 100644
--- a/pkgs/build-support/php/build-composer-project.nix
+++ b/pkgs/build-support/php/build-composer-project.nix
@@ -8,8 +8,15 @@ let
composer = finalAttrs.composer or phpDrv.packages.composer;
composer-local-repo-plugin = callPackage ./pkgs/composer-local-repo-plugin.nix { };
composerLock = finalAttrs.composerLock or null;
+ composerNoDev = finalAttrs.composerNoDev or true;
+ composerNoPlugins = finalAttrs.composerNoPlugins or true;
+ composerNoScripts = finalAttrs.composerNoScripts or true;
in
{
+ 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,7 +57,7 @@ let
'';
composerRepository = phpDrv.mkComposerRepository {
- inherit composer composer-local-repo-plugin composerLock;
+ inherit composer composer-local-repo-plugin composerLock composerNoDev composerNoPlugins composerNoScripts;
inherit (finalAttrs) patches pname src vendorHash version;
};
diff --git a/pkgs/build-support/php/build-composer-repository.nix b/pkgs/build-support/php/build-composer-repository.nix
index 86362f151f09..b78f98742a24 100644
--- a/pkgs/build-support/php/build-composer-repository.nix
+++ b/pkgs/build-support/php/build-composer-repository.nix
@@ -20,12 +20,22 @@ let
phpDrv = finalAttrs.php or php;
composer = finalAttrs.composer or phpDrv.packages.composer;
composer-local-repo-plugin = callPackage ./pkgs/composer-local-repo-plugin.nix { };
+ composerNoDev = finalAttrs.composerNoDev or "true";
+ composerNoPlugins = finalAttrs.composerNoPlugins or "true";
+ composerNoScripts = finalAttrs.composerNoScripts or "true";
in
assert (lib.assertMsg (previousAttrs ? src) "mkComposerRepository expects src argument.");
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 2d5c90ea3b2f..9f23b90fa401 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 b6e48e22b4b6..39cc6fc53952 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
# drupol/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"
}