]> git.immae.eu Git - perso/Immae/Config/Nix.git/blobdiff - flakes/mypackages/pkgs/status_engine/worker.nix
Squash changes containing private information
[perso/Immae/Config/Nix.git] / flakes / mypackages / pkgs / status_engine / worker.nix
diff --git a/flakes/mypackages/pkgs/status_engine/worker.nix b/flakes/mypackages/pkgs/status_engine/worker.nix
new file mode 100644 (file)
index 0000000..d8425e1
--- /dev/null
@@ -0,0 +1,37 @@
+{ stdenv, fetchFromGitHub, composerEnv, fetchurl, gearmand, callPackage, php81, config_file ? "/var/lib/status_engine/ui.yml" }:
+let
+  gearman = php81.buildPecl rec {
+    # git describe
+    version = "2.1.0-12-g8fb88d5";
+    pname = "gearman";
+    src = fetchFromGitHub {
+      owner = "php";
+      repo = "pecl-networking-gearman";
+      rev = "8fb88d5a97111a7e8f0dc67553c387b49f047e53";
+      sha256 = "sha256-VPJX29JfNjh0mHlYY+iYKBHSJGUINbWHvojyYBSkSho=";
+    };
+    configureFlags = [ "--with-gearman=${gearmand}" ];
+    nativeBuildInputs = [ gearmand ];
+  };
+  php = php81.withExtensions({ enabled, all }: enabled ++ (with all; [gearman redis mbstring bcmath iconv]));
+in
+(composerEnv.override { inherit php; }).buildPackage (
+  import ./worker_php_packages.nix { inherit composerEnv fetchurl; } // rec {
+    name = "${pname}-${version}";
+    pname = "worker";
+    version = "master";
+    src = fetchFromGitHub {
+      owner = "statusengine";
+      repo = "worker";
+      rev = "e20d6b5c83c6b3c6a2030c9506542fa59dcbb551";
+      sha256 = "sha256-dcC+SLEqMUubp4JQFSuKNpd6U4VYvGR38Vn1jf6ZvTU=";
+      fetchSubmodules = true;
+    };
+    passthru.php = php;
+    postInstall = ''
+      ln -s ${config_file} $out/etc/config.yml
+    '';
+    preInstall = ''
+      cp ${./worker_composer.lock} $out/composer.lock
+    '';
+})