'';
}) 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 //
};
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;