about summary refs log tree commit diff
path: root/modules/services/gitolite
diff options
context:
space:
mode:
Diffstat (limited to 'modules/services/gitolite')
-rw-r--r--modules/services/gitolite/default.nix2
-rw-r--r--modules/services/gitolite/post-receive19
2 files changed, 21 insertions, 0 deletions
diff --git a/modules/services/gitolite/default.nix b/modules/services/gitolite/default.nix
index e2439a2..43afb71 100644
--- a/modules/services/gitolite/default.nix
+++ b/modules/services/gitolite/default.nix
@@ -44,6 +44,7 @@ in
     system.activationScripts.gitolite-create-local = ''
       mkdir -p /var/lib/gitolite/local/triggers
       mkdir -p /var/lib/gitolite/local/commands
+      mkdir -p /var/lib/gitolite/local/hooks/common
       chown -R git:git /var/lib/gitolite/local
     '';
 
@@ -51,6 +52,7 @@ in
       # https://groups.google.com/g/gitolite/c/NwZ1-hq9-9E/m/mDbiKyAvDwAJ
       "C /var/lib/gitolite/local/triggers/fix-refs 755 - - - ${./fix-refs}"
       "C /var/lib/gitolite/local/commands/rename 755 - - - ${./rename}"
+      "C /var/lib/gitolite/local/hooks/common/post-receive 755 - - - ${./post-receive}"
     ];
 
 
diff --git a/modules/services/gitolite/post-receive b/modules/services/gitolite/post-receive
new file mode 100644
index 0000000..2f72ae9
--- /dev/null
+++ b/modules/services/gitolite/post-receive
@@ -0,0 +1,19 @@
+#!/bin/sh
+#
+# An example hook to update the "agefile" for CGit's idle time calculation.
+#
+# This hook assumes that you are using the default agefile location of
+# "info/web/last-modified".  If you change the value in your cgitrc then you
+# must also change it here.
+#
+# To install the hook, copy (or link) it to the file "hooks/post-receive" in
+# each of your repositories.
+#
+
+agefile="$(git rev-parse --git-dir)"/info/web/last-modified
+
+mkdir -p "$(dirname "$agefile")" &&
+git for-each-ref \
+	--sort=-authordate --count=1 \
+	--format='%(authordate:iso8601)' \
+	>"$agefile"