diff --git a/nixos/modules/services/misc/gitolite.nix b/nixos/modules/services/misc/gitolite.nix
index 6bb8adeccf7..f395b9558b5 100644
--- a/nixos/modules/services/misc/gitolite.nix
+++ b/nixos/modules/services/misc/gitolite.nix
@@ -41,6 +41,15 @@ in
'';
};
+ enableGitAnnex = mkOption {
+ type = types.bool;
+ default = false;
+ description = ''
+ Enable git-annex support. Uses the extraGitoliteRc option
+ to apply the necessary configuration.
+ '';
+ };
+
commonHooks = mkOption {
type = types.listOf types.path;
default = [];
@@ -75,6 +84,8 @@ in
will need to take any customizations you may have in
~/.gitolite.rc, convert them to appropriate Perl
statements, add them to this option, and remove the file.
+
+ See also the enableGitAnnex option.
'';
};
@@ -124,6 +135,11 @@ in
''} >>"$out/gitolite.rc"
'';
in {
+ services.gitolite.extraGitoliteRc = optionalString cfg.enableGitAnnex ''
+ # Enable git-annex support:
+ push( @{$RC{ENABLE}}, 'git-annex-shell ua');
+ '';
+
users.extraUsers.${cfg.user} = {
description = "Gitolite user";
home = cfg.dataDir;
@@ -198,6 +214,7 @@ in
'';
};
- environment.systemPackages = [ pkgs.gitolite pkgs.git ];
+ environment.systemPackages = [ pkgs.gitolite pkgs.git ]
+ ++ optional cfg.enableGitAnnex pkgs.gitAndTools.git-annex;
});
}