Compare commits
2 Commits
94e26ea4ab
...
42bd83603c
Author | SHA1 | Date |
---|---|---|
Emery Hemingway | 42bd83603c | |
Emery Hemingway | 7b19ca3492 |
|
@ -1,7 +1,9 @@
|
|||
{ lib, writeTextFile, toPreserves }:
|
||||
{ lib, runtimeShell, toPreserves, writeScript, writeTextFile }:
|
||||
|
||||
{ name, description, argv, environment, directory
|
||||
# List of services that this configuration depends on.
|
||||
# Shell instructions that specify how the state of the process should be initialized.
|
||||
, initialize ? ""
|
||||
# List of services that this configuration depends on.
|
||||
, dependencies ? [ ]
|
||||
# Daemon will not be started until all elements of depends-on are asserted.
|
||||
# Example: [ "<service-state <milestone network> up>" ]
|
||||
|
@ -39,6 +41,21 @@ in writeTextFile {
|
|||
<depends-on ${serviceName} ${pkg.serviceName}>
|
||||
'') dependencies)
|
||||
|
||||
+ (lib.strings.optionalString (initialize != "") (let
|
||||
# TODO: depend the initialization on other dependencies?
|
||||
initializeName = "initialize-${name}";
|
||||
script = writeScript "${initializeName}.sh" ''
|
||||
#!${runtimeShell}
|
||||
${initialize}
|
||||
'';
|
||||
in ''
|
||||
<depends-on ${serviceName} <service-state <daemon ${initializeName}> complete>>
|
||||
<deamon ${initializeName} {
|
||||
argv: [ "${script}" ]
|
||||
restart: on-error
|
||||
}>
|
||||
''))
|
||||
|
||||
+ ''
|
||||
<daemon ${name} ${toPreserves processSpec}>
|
||||
'';
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ lib, writeTextFile }:
|
||||
{ lib, runtimeShell, writeScript, writeTextFile, undaemonize }:
|
||||
|
||||
rec {
|
||||
util = import ./util.nix { inherit lib; };
|
||||
|
@ -6,12 +6,12 @@ rec {
|
|||
toPreserves = util.toPreserves { };
|
||||
|
||||
createSynitDaemon = import ../../backends/synit/create-synit-daemon.nix {
|
||||
inherit lib writeTextFile;
|
||||
inherit lib runtimeShell writeScript writeTextFile;
|
||||
inherit toPreserves;
|
||||
};
|
||||
|
||||
generateSynitService =
|
||||
import ../../backends/synit/generate-synit-service.nix {
|
||||
inherit lib createSynitDaemon;
|
||||
inherit lib createSynitDaemon undaemonize;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ lib, createSynitDaemon }:
|
||||
{ lib, createSynitDaemon, undaemonize }:
|
||||
|
||||
{ name, description, initialize, daemon, daemonArgs, instanceName, pidFile
|
||||
, foregroundProcess, foregroundProcessArgs, path, environment, directory, umask
|
||||
|
@ -6,12 +6,12 @@
|
|||
|
||||
let
|
||||
generatedTargetSpecificArgs = {
|
||||
inherit name description environment directory dependencies;
|
||||
inherit name description environment directory dependencies initialize;
|
||||
|
||||
argv = if daemon != null then
|
||||
[ daemon ] ++ daemonArgs
|
||||
argv = if foregroundProcess != null then
|
||||
[ foregroundProcess ] ++ foregroundProcessArgs
|
||||
else
|
||||
[ foregroundProcess ] ++ foregroundProcessArgs;
|
||||
[ "${undaemonize}/bin/undaemonize" daemon ] ++ daemonArgs;
|
||||
};
|
||||
|
||||
targetSpecificArgs = if builtins.isFunction overrides then
|
||||
|
|
|
@ -115,7 +115,7 @@ let
|
|||
};
|
||||
|
||||
synit = import ../../backends/synit {
|
||||
inherit (pkgs) lib writeTextFile;
|
||||
inherit (pkgs) lib runtimeShell undaemonize writeScript writeTextFile;
|
||||
};
|
||||
|
||||
in
|
||||
|
|
Loading…
Reference in New Issue