]> git.immae.eu Git - perso/Immae/Config/Nix.git/blobdiff - modules/private/gitolite/default.nix
Remove gitolite password from nix store
[perso/Immae/Config/Nix.git] / modules / private / gitolite / default.nix
index 9f5c179a260f00a9f41d7b2ce87b287c26e0c59f..e8ccc7d67777ffc15e6cb654c478e7568275ba6c 100644 (file)
@@ -20,6 +20,14 @@ in {
     };
     networking.firewall.allowedTCPPorts = [ 9418 ];
 
+    secrets.keys = [{
+      dest = "gitolite/ldap_password";
+      user = "gitolite";
+      group = "gitolite";
+      permissions = "0400";
+      text = config.myEnv.tools.gitolite.ldap.password;
+    }];
+
     services.gitDaemon = {
       enable = true;
       user = "gitolite";
@@ -28,14 +36,14 @@ in {
     };
 
     system.activationScripts.gitolite = let
-      gitolite_ldap_groups = pkgs.mylibs.wrap {
-        name = "gitolite_ldap_groups.sh";
-        file = ./gitolite_ldap_groups.sh;
-        vars = {
-          LDAP_PASS = config.myEnv.tools.gitolite.ldap.password;
-        };
-        paths = [ pkgs.openldap pkgs.stdenv.shellPackage pkgs.gnugrep pkgs.coreutils ];
-      };
+      deps = [ pkgs.openldap pkgs.stdenv.shellPackage pkgs.gnugrep pkgs.coreutils ];
+      gitolite_ldap_groups = pkgs.runCommand "gitolite_ldap_groups.sh" {
+        buildInputs = [ pkgs.makeWrapper ];
+      } ''
+        makeWrapper "${./gitolite_ldap_groups.sh}" "$out" \
+          --prefix PATH : ${lib.makeBinPath deps} \
+          --set LDAP_PASS_PATH ${config.secrets.fullPaths."gitolite/ldap_password"}
+        '';
     in {
       deps = [ "users" ];
       text = ''
@@ -50,6 +58,7 @@ in {
     };
 
     users.users.wwwrun.extraGroups = [ "gitolite" ];
+    users.users.gitolite.extraGroups = [ "keys" ];
 
     users.users.gitolite.packages = let
       python-packages = python-packages: with python-packages; [