From e2ebdd097ea5249efaf7ae54cca257320c251968 Mon Sep 17 00:00:00 2001 From: Max Date: Sun, 11 Aug 2024 00:50:00 +0200 Subject: [PATCH] cluster/simulacrum: recursive service deps --- cluster/simulacrum/default.nix | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/cluster/simulacrum/default.nix b/cluster/simulacrum/default.nix index 101b345..26eca7e 100644 --- a/cluster/simulacrum/default.nix +++ b/cluster/simulacrum/default.nix @@ -4,9 +4,15 @@ let serviceConfig = config.cluster.config.services.${service}; - serviceList = [ service ] ++ serviceConfig.simulacrum.deps; + serviceList = getDepsRecursive [] service; allAugments = map (svc: config.cluster.config.services.${svc}.simulacrum.augments) serviceList; + getDepsRecursive = acc: service: let + deps = lib.subtractLists acc config.cluster.config.services.${service}.simulacrum.deps; + acc' = acc ++ [ service ]; + recurse = getDepsRecursive acc'; + in lib.unique (lib.flatten ([ service ] ++ map recurse deps)); + lift = config; snakeoil = {