about summary refs log tree commit diff
path: root/pkgs/build-support/php/builders/v1/hooks/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/build-support/php/builders/v1/hooks/default.nix')
-rw-r--r--pkgs/build-support/php/builders/v1/hooks/default.nix39
1 files changed, 39 insertions, 0 deletions
diff --git a/pkgs/build-support/php/builders/v1/hooks/default.nix b/pkgs/build-support/php/builders/v1/hooks/default.nix
new file mode 100644
index 0000000000000..e658ccbcaafc6
--- /dev/null
+++ b/pkgs/build-support/php/builders/v1/hooks/default.nix
@@ -0,0 +1,39 @@
+{
+  lib,
+  makeSetupHook,
+  jq,
+  writeShellApplication,
+  moreutils,
+  cacert,
+  buildPackages,
+}:
+
+let
+  php-script-utils = writeShellApplication {
+    name = "php-script-utils";
+    runtimeInputs = [ jq ];
+    text = builtins.readFile ./php-script-utils.bash;
+  };
+in
+{
+  composerRepositoryHook = makeSetupHook
+    {
+      name = "composer-repository-hook.sh";
+      propagatedBuildInputs = [ jq moreutils cacert ];
+      substitutions = {
+        phpScriptUtils = lib.getExe php-script-utils;
+      };
+    } ./composer-repository-hook.sh;
+
+  composerInstallHook = makeSetupHook
+    {
+      name = "composer-install-hook.sh";
+      propagatedBuildInputs = [ jq moreutils cacert ];
+      substitutions = {
+        # Specify the stdenv's `diff` by abspath to ensure that the user's build
+        # inputs do not cause us to find the wrong `diff`.
+        cmp = "${lib.getBin buildPackages.diffutils}/bin/cmp";
+        phpScriptUtils = lib.getExe php-script-utils;
+      };
+    } ./composer-install-hook.sh;
+}