extended gitolite service to take custom hooks

Closes #4160
This commit is contained in:
Ronny Esterluss 2014-09-16 08:33:29 +02:00 committed by Mateusz Kowalczyk
parent 90fcd66599
commit 473ffd9eae

View File

@ -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 <literal>~/.gitolite/hooks/common</literal>.
'';
};
};
};
@ -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
'';
};