diff --git a/nixproc/backends/synit/create-synit-daemon.nix b/nixproc/backends/synit/create-synit-daemon.nix index c21ce39..70fffeb 100644 --- a/nixproc/backends/synit/create-synit-daemon.nix +++ b/nixproc/backends/synit/create-synit-daemon.nix @@ -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: [ " up>" ] +# List of services that this configuration depends on. +, dependencies ? [ ] + # Daemon will not be started until all elements of depends-on are asserted. + # Example: [ " 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 = ""; + in writeTextFile { name = "services-${name}"; destination = "/services/${name}.pr"; - text = let daemonName = ""; - in '' - - + text = '' + '' - + (lib.strings.optionalString require-service '' - - '') + + (lib.strings.optionalString require-service '' + + '') - + (lib.strings.concatMapStrings (dep: '' - - '') depends-on); + + (lib.strings.concatMapStrings (dep: '' + + '') depends-on) + + + (lib.strings.concatMapStrings (pkg: '' + + '') dependencies) + + + '' + + ''; +} // { + inherit serviceName; } diff --git a/nixproc/backends/synit/generate-synit-service.nix b/nixproc/backends/synit/generate-synit-service.nix index ef0b669..4bb86c8 100644 --- a/nixproc/backends/synit/generate-synit-service.nix +++ b/nixproc/backends/synit/generate-synit-service.nix @@ -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