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

22 lines
791 B
Nix

{ lib, createSynitDaemon, undaemonize }:
{ 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 path dependencies initialize;
argv = map toString (if foregroundProcess != null then
[ foregroundProcess ] ++ foregroundProcessArgs
else
[ "${undaemonize}/bin/undaemonize" daemon ] ++ daemonArgs);
};
targetSpecificArgs = if builtins.isFunction overrides then
overrides generatedTargetSpecificArgs
else
lib.recursiveUpdate generatedTargetSpecificArgs overrides;
in createSynitDaemon targetSpecificArgs