]> git.immae.eu Git - perso/Immae/Config/Nix.git/blobdiff - virtual/modules/gitolite.nix
Move httpd service to module
[perso/Immae/Config/Nix.git] / virtual / modules / gitolite.nix
index 85c7be175e418aefb46303f4d352da5fc48056c3..d6b9c79b92ce16ba4f6d6cf48f041ee9456a9583 100644 (file)
@@ -4,6 +4,10 @@ let
 in {
   options.services.myGitolite = {
     enable = lib.mkEnableOption "my gitolite service";
+    gitoliteDir = lib.mkOption {
+      type = lib.types.string;
+      default = "/var/lib/gitolite";
+    };
   };
 
   config = lib.mkIf cfg.enable {
@@ -20,6 +24,13 @@ in {
       });
     };
 
+    services.gitDaemon = {
+      enable = true;
+      user = "gitolite";
+      group = "gitolite";
+      basePath = "${cfg.gitoliteDir}/repositories";
+    };
+
     system.activationScripts.gitolite =
       assert mylibs.checkEnv "NIXOPS_GITOLITE_LDAP_PASSWORD";
       let
@@ -34,12 +45,12 @@ in {
     in {
       deps = [ "users" ];
       text = ''
-        if [ -d /var/lib/gitolite ]; then
-          ln -sf ${gitolite_ldap_groups} /var/lib/gitolite/gitolite_ldap_groups.sh
-          chmod g+rx /var/lib/gitolite
+        if [ -d ${cfg.gitoliteDir} ]; then
+          ln -sf ${gitolite_ldap_groups} ${cfg.gitoliteDir}/gitolite_ldap_groups.sh
+          chmod g+rx ${cfg.gitoliteDir}
         fi
-        if [ -f /var/lib/gitolite/projects.list ]; then
-          chmod g+r /var/lib/gitolite/projects.list
+        if [ -f ${cfg.gitoliteDir}/projects.list ]; then
+          chmod g+r ${cfg.gitoliteDir}/projects.list
         fi
       '';
     };