puter/hosts/headful/work/phps.nix

65 lines
1.2 KiB
Nix
Raw Normal View History

2025-01-18 23:22:44 +00:00
{
lib,
inputs,
pkgs,
...
}: let
supportedPhps = [
"php72"
"php73"
"php74"
"php80"
"php81"
"php82"
"php83"
"php84"
];
2025-01-19 01:38:51 +00:00
selectedPhp = lib.last supportedPhps;
2025-01-18 23:59:05 +00:00
2025-01-18 23:22:44 +00:00
extraConfig = ''
memory_limit = -1
xdebug.mode = develop,coverage,gcstats,profile,debug,trace
xdebug.discover_client_host = 1
xdebug.client_host = localhost
'';
phps = lib.genAttrs supportedPhps (
2025-01-19 01:38:51 +00:00
phpName: let
base = inputs.phps.packages.${pkgs.system}.${phpName};
in
base.buildEnv {
2025-01-18 23:22:44 +00:00
extensions = {
enabled,
all,
}:
2025-01-19 01:38:51 +00:00
enabled
++ [all.xdebug]
++ (
if (lib.versionAtLeast base.version "8")
then [all.amqp]
else []
);
2025-01-18 23:22:44 +00:00
inherit extraConfig;
}
);
2025-01-18 23:59:05 +00:00
prefix = "/var/lib/phps";
2025-01-18 23:22:44 +00:00
in {
nix.settings = {
substituters = ["https://fossar.cachix.org/"];
trusted-public-keys = ["fossar.cachix.org-1:Zv6FuqIboeHPWQS7ysLCJ7UT7xExb4OE8c4LyGb5AsE="];
};
2025-01-18 23:59:05 +00:00
systemd.tmpfiles.settings =
2025-01-18 23:22:44 +00:00
builtins.mapAttrs (name: drv: {
2025-01-18 23:59:05 +00:00
"${prefix}/${name}"."L+".argument = drv.outPath;
2025-01-18 23:22:44 +00:00
})
phps;
2025-01-18 23:59:05 +00:00
environment.systemPackages = [
phps.${selectedPhp}.packages.composer
];
2025-01-18 23:22:44 +00:00
}