--- /dev/null
+{ 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
+ '';
+})