]> git.immae.eu Git - perso/Immae/Config/Nix.git/blobdiff - modules/private/buildbot/default.nix
Use attrs for secrets instead of lists
[perso/Immae/Config/Nix.git] / modules / private / buildbot / default.nix
index 903f453094c3041695b4c68fa5f826ffb207f61b..dc8a0d241bac99a294ba2e53df084cd991c7de5c 100644 (file)
@@ -76,33 +76,30 @@ in
         '';
     }) config.myEnv.buildbot.projects;
 
-    secrets.keys = (
+    secrets.keys = lib.listToAttrs (
       lib.lists.flatten (
         lib.attrsets.mapAttrsToList (k: project:
           lib.attrsets.mapAttrsToList (k: v:
-            {
+            (lib.nameValuePair "buildbot/${project.name}/${k}" {
               permissions = "0600";
               user = "buildbot";
               group = "buildbot";
               text = v;
-              dest = "buildbot/${project.name}/${k}";
-            }
+            })
           ) project.secrets
           ++ [
-            {
+            (lib.nameValuePair "buildbot/${project.name}/webhook-httpd-include" {
               permissions = "0600";
               user = "wwwrun";
               group = "wwwrun";
               text = lib.optionalString (project.webhookTokens != null) ''
                 Require expr "req('Access-Key') in { ${builtins.concatStringsSep ", " (map (x: "'${x}'") project.webhookTokens)} }"
                 '';
-              dest = "buildbot/${project.name}/webhook-httpd-include";
-            }
-            {
+            })
+            (lib.nameValuePair "buildbot/${project.name}/environment_file" {
               permissions = "0600";
               user = "buildbot";
               group = "buildbot";
-              dest = "buildbot/${project.name}/environment_file";
               text = let
                 project_env = with lib.attrsets;
                   mapAttrs' (k: v: nameValuePair "BUILDBOT_${k}" v) project.environment //
@@ -115,33 +112,30 @@ in
                   };
                 in builtins.concatStringsSep "\n"
                   (lib.mapAttrsToList (envK: envV: "${envK}=${envV}") project_env);
-            }
+            })
           ]
         ) config.myEnv.buildbot.projects
       )
-    ) ++ [
-      {
+    ) // {
+      "buildbot/ldap" = {
         permissions = "0600";
         user = "buildbot";
         group = "buildbot";
         text = config.myEnv.buildbot.ldap.password;
-        dest = "buildbot/ldap";
-      }
-      {
+      };
+      "buildbot/worker_password" = {
         permissions = "0600";
         user = "buildbot";
         group = "buildbot";
         text = config.myEnv.buildbot.workerPassword;
-        dest = "buildbot/worker_password";
-      }
-      {
+      };
+      "buildbot/ssh_key" = {
         permissions = "0600";
         user = "buildbot";
         group = "buildbot";
         text = config.myEnv.buildbot.ssh_key.private;
-        dest = "buildbot/ssh_key";
-      }
-    ];
+      };
+    };
 
     services.filesWatcher = lib.attrsets.mapAttrs' (k: project: lib.attrsets.nameValuePair "buildbot-${project.name}" {
       restart = true;