Synit: add dependencies
This commit is contained in:
parent
509347cc85
commit
a49d76f6c4
|
@ -1,8 +1,10 @@
|
|||
{ lib, writeTextFile, toPreserves }:
|
||||
|
||||
{ name, description, daemon, daemonArgs, environment, directory
|
||||
# Daemon will not be started until all elements of depends-on are asserted.
|
||||
# Example: [ "<service-state <milestone network> up>" ]
|
||||
# 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>" ]
|
||||
, depends-on ? [ ]
|
||||
# Whether the daemon shall be declared as required.
|
||||
, require-service ? true }:
|
||||
|
@ -16,20 +18,30 @@ let
|
|||
env = environment;
|
||||
} // (lib.attrsets.optionalAttrs (directory != null) { dir = directory; });
|
||||
|
||||
serviceName = "<daemon ${name}>";
|
||||
|
||||
in writeTextFile {
|
||||
name = "services-${name}";
|
||||
destination = "/services/${name}.pr";
|
||||
text = let daemonName = "<daemon ${name}>";
|
||||
in ''
|
||||
<metadata ${daemonName} { description: "${description}" }>
|
||||
<daemon ${name} ${toPreserves processSpec}>
|
||||
text = ''
|
||||
<metadata ${serviceName} { description: "${description}" }>
|
||||
''
|
||||
|
||||
+ (lib.strings.optionalString require-service ''
|
||||
<require-service ${daemonName}>
|
||||
'')
|
||||
+ (lib.strings.optionalString require-service ''
|
||||
<require-service ${serviceName}>
|
||||
'')
|
||||
|
||||
+ (lib.strings.concatMapStrings (dep: ''
|
||||
<depends-on ${daemonName} ${dep}>
|
||||
'') depends-on);
|
||||
+ (lib.strings.concatMapStrings (dep: ''
|
||||
<depends-on ${serviceName} ${dep}>
|
||||
'') depends-on)
|
||||
|
||||
+ (lib.strings.concatMapStrings (pkg: ''
|
||||
<depends-on ${serviceName} ${pkg.serviceName}>
|
||||
'') dependencies)
|
||||
|
||||
+ ''
|
||||
<daemon ${name} ${toPreserves processSpec}>
|
||||
'';
|
||||
} // {
|
||||
inherit serviceName;
|
||||
}
|
||||
|
|
|
@ -6,7 +6,8 @@
|
|||
|
||||
let
|
||||
generatedTargetSpecificArgs = {
|
||||
inherit name description daemon daemonArgs environment directory;
|
||||
inherit name description daemon daemonArgs environment directory
|
||||
dependencies;
|
||||
};
|
||||
|
||||
targetSpecificArgs = if builtins.isFunction overrides then
|
||||
|
|
Loading…
Reference in New Issue