]> git.immae.eu Git - perso/Immae/Config/Nix.git/blobdiff - flakes/mypackages/pkgs/status_engine/worker.nix
Add flake skeletons
[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..160e1dd
--- /dev/null
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, composerEnv, fetchurl, gearmand, callPackage, php74, config_file ? "/var/lib/status_engine/ui.yml" }:
+let
+  gearman = php74.buildPecl rec {
+    version = "2.1.0";
+    pname = "gearman";
+    src = fetchurl {
+      url = "https://github.com/php/pecl-networking-gearman/archive/${pname}-${version}.tar.gz";
+      sha256 = "077wh1kxpp9pfmsm3xixplis85zx5fpbhilvz1d5pic6rb0ali5s";
+    };
+    configureFlags = [ "--with-gearman=${gearmand}" ];
+    nativeBuildInputs = [ gearmand ];
+  };
+in
+(composerEnv.override {
+  php = php74.withExtensions({ enabled, all }: enabled ++ (with all; [gearman redis mbstring bcmath json iconv]));
+}).buildPackage (
+  import ./worker_php_packages.nix { inherit composerEnv fetchurl; } // rec {
+    name = "${pname}-${version}";
+    pname = "worker";
+    version = "02267d4-master";
+    src = fetchFromGitHub {
+      owner = "statusengine";
+      repo = "worker";
+      rev = "02267d495ae69137d6765dc6b0f453f80216f1cf";
+      sha256 = "06ci4mkmifdf1z15yc8rxl44ppi45vjz4s136yaccq9d8vk9iyd4";
+      fetchSubmodules = true;
+    };
+    postInstall = ''
+      ln -s ${config_file} $out/etc/config.yml
+    '';
+    preInstall = ''
+      cp ${./worker_composer.lock} $out/composer.lock
+    '';
+})