nix-processmgmt/nixproc/backends/synit/generate-synit-service.nix

22 lines
703 B
Nix

{ lib, createSynitDaemon }:
{ name, description, initialize, daemon, daemonArgs, instanceName, pidFile
, foregroundProcess, foregroundProcessArgs, path, environment, directory, umask
, nice, user, dependencies, credentials, overrides, postInstall }:
let
generatedTargetSpecificArgs = {
inherit name description environment directory dependencies;
argv = if daemon != null then
[ daemon ] ++ daemonArgs
else
[ foregroundProcess ] ++ foregroundProcessArgs;
};
targetSpecificArgs = if builtins.isFunction overrides then
overrides generatedTargetSpecificArgs
else
lib.recursiveUpdate generatedTargetSpecificArgs overrides;
in createSynitDaemon targetSpecificArgs