]> 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 9dfa04dffda129e5375ecfa84a7b1ced4bf6dca1..e8ccc7d67777ffc15e6cb654c478e7568275ba6c 100644 (file)
@@ -5,7 +5,7 @@ in {
   options.myServices.gitolite = {
     enable = lib.mkEnableOption "my gitolite service";
     gitoliteDir = lib.mkOption {
-      type = lib.types.string;
+      type = lib.types.str;
       default = "/var/lib/gitolite";
     };
   };
@@ -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; [