'';
};
+ envFile = mkOption {
+ default = {};
+ type = types.attrsOf types.string;
+ example = literalExample ''
+ { mypool = "path/to/file";
+ }
+ '';
+ description = ''
+ Extra environment file go into the service script.
+ '';
+ };
+
+ preStart = mkOption {
+ default = {};
+ type = types.attrsOf types.lines;
+ example = literalExample ''
+ { mypool = '''
+ touch foo
+ ''';
+ }
+ '';
+ description = ''
+ Extra lines that will go into the preStart systemd service
+ '';
+ };
+
poolPhpConfigs = mkOption {
default = {};
type = types.attrsOf types.lines;
partOf = [ "phpfpm.target" ];
preStart = ''
mkdir -p ${stateDir}
- '';
+ '' + (cfg.preStart.${pool} or "");
serviceConfig = let
cfgFile = fpmCfgFile pool poolConfig;
poolPhpIni = cfg.poolPhpConfigs.${pool} or "";
in {
+ EnvironmentFile = if builtins.hasAttr pool cfg.envFile then [cfg.envFile.${pool}] else [];
Slice = "phpfpm.slice";
PrivateDevices = true;
ProtectSystem = "full";