From ac7e3f6407e9cedc69d0b3114d1b76e7730b2667 Mon Sep 17 00:00:00 2001 From: DavHau Date: Sat, 2 Sep 2023 18:25:27 +0200 Subject: [PATCH] sops: fix module to accept missing ./sops dir --- nixosModules/clanCore/secrets/sops.nix | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/nixosModules/clanCore/secrets/sops.nix b/nixosModules/clanCore/secrets/sops.nix index 7df0b31..2c1042f 100644 --- a/nixosModules/clanCore/secrets/sops.nix +++ b/nixosModules/clanCore/secrets/sops.nix @@ -45,13 +45,17 @@ ''; sops.secrets = let + secretsDir = config.clanCore.clanDir + "/sops/secrets"; encryptedForThisMachine = name: type: let - symlink = config.clanCore.clanDir + "/sops/secrets/${name}/machines/${config.clanCore.machineName}"; + symlink = secretsDir + "/${name}/machines/${config.clanCore.machineName}"; in # WTF, nix bug, my symlink is in the nixos module detected as a directory also it works in the repl type == "directory" && (builtins.readFileType symlink == "directory" || builtins.readFileType symlink == "symlink"); - secrets = lib.filterAttrs encryptedForThisMachine (builtins.readDir (config.clanCore.clanDir + "/sops/secrets")); + secrets = + if !builtins.pathExists secretsDir + then { } + else lib.filterAttrs encryptedForThisMachine (builtins.readDir secretsDir); in builtins.mapAttrs (name: _: {