From 76f08600afffb262e2266c261df143b2c963832b Mon Sep 17 00:00:00 2001 From: Max Date: Wed, 14 Aug 2024 19:20:22 +0200 Subject: [PATCH] cluster/services/incandescence: don't try to filter destruction if no objects declared --- cluster/services/incandescence/provider.nix | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/cluster/services/incandescence/provider.nix b/cluster/services/incandescence/provider.nix index 860a2d1..471b403 100644 --- a/cluster/services/incandescence/provider.nix +++ b/cluster/services/incandescence/provider.nix @@ -1,7 +1,7 @@ { cluster, config, lib, ... }: let - inherit (lib) concatStringsSep escapeShellArg flatten filter filterAttrs length mapAttrs mapAttrs' mapAttrsToList mkIf mkMerge pipe stringToCharacters; + inherit (lib) concatStringsSep escapeShellArg flatten filter filterAttrs length mapAttrs mapAttrs' mapAttrsToList mkIf mkMerge optionalString pipe stringToCharacters; cfg = config.services.incandescence; clusterCfg = cluster.config.incandescence; @@ -83,13 +83,15 @@ in (builtins.add 2) toString ]; + needsFilter = clusterCfg.providers.${provider}.objects.${formula} != []; keyFilter = pipe clusterCfg.providers.${provider}.objects.${formula} [ (map (x: escapeShellArg "^${x}$")) (concatStringsSep " \\\n -e ") ]; destroyAfterDays = toString formulaConfig.destroyAfterDays; + grep = optionalString needsFilter "grep -v -e ${keyFilter} |"; in '' - consul kv get --keys ${kvRoot}/ | cut -d/ -f${fieldNum} | grep -v -e ${keyFilter} | while read object; do + consul kv get --keys ${kvRoot}/ | cut -d/ -f${fieldNum} | ${grep} while read object; do if consul kv get ${kvRoot}/$object/alive >/dev/null; then destroyOn="$(consul kv get ${kvRoot}/$object/destroyOn || true)" if [[ -z "$destroyOn" && "${destroyAfterDays}" -ne 0 ]]; then