puter/hosts/headful/work/phps.nix

90 lines
1.7 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-18 23:59:05 +00:00
selectedPhp = "php84";
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 (
phpName:
inputs.phps.packages.${pkgs.system}.${phpName}.buildEnv {
extensions = {
enabled,
all,
}:
enabled ++ [all.xdebug all.amqp];
inherit extraConfig;
}
);
2025-01-18 23:59:05 +00:00
prefix = "/var/lib/phps";
/*
phpHomeLink = ".local/bin/php";
usephp = pkgs.writeShellApplication {
name = "usephp";
text = ''
if (( $# != 1 )); then
echo incorrect number of arguments >&2
exit 1
fi
ln --symbolic --force -- ${lib.escapeShellArg prefix}/"$1"/bin/php ~/${lib.escapeShellArg phpHomeLink}
'';
};
composer = pkgs.writeShellApplication {
name = "composer";
text = ''
php=~/${lib.escapeShellArg phpHomeLink}
if [[ ! -x $php ]]; then
echo php has not been linked >&2
exit 1
fi
exec -- "$php" ${pkgs.phpPackages.composer}/bin/.composer-wrapped
'';
};
*/
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
];
/*
environment.systemPackages = [
usephp
composer
];
*/
2025-01-18 23:22:44 +00:00
}