diff --git a/nixos/modules/services/misc/gitolite.nix b/nixos/modules/services/misc/gitolite.nix index 84435f92c11d..961af48e0f86 100644 --- a/nixos/modules/services/misc/gitolite.nix +++ b/nixos/modules/services/misc/gitolite.nix @@ -5,6 +5,7 @@ with lib; let cfg = config.services.gitolite; pubkeyFile = pkgs.writeText "gitolite-admin.pub" cfg.adminPubkey; + hooks = lib.concatMapStrings (hook: "${hook} ") cfg.commonHooks; in { options = { @@ -30,6 +31,14 @@ in once, upon the first initialization of the Gitolite user. ''; }; + + commonHooks = mkOption { + type = types.listOf types.path; + default = []; + description = '' + A list of custom git hooks that get copied to ~/.gitolite/hooks/common. + ''; + }; }; }; @@ -57,6 +66,10 @@ in if [ ! -d repositories ]; then gitolite setup -pk ${pubkeyFile} fi + if [ -n "${hooks}" ]; then + cp ${hooks} .gitolite/hooks/common/ + chmod +x .gitolite/hooks/common/* + fi gitolite setup # Upgrade if needed ''; };