Subject: [PATCH v2 04/14] services: gitolite-rc-file: Add extra-content field.

From: Tomas Volf <[email-masked]>
Date: Tue, 1 Apr 2025 00:10:10 +0200

* gnu/services/version-control.scm (<gitolite-rc-file>): Add extra-content
field.
(gitolite-rc-file-compiler): Handle it during configuration file generation.
* doc/guix.texi (Version Control Services): Document it.

Change-Id: I5082e1d7a27cc746641ba9ec8ae07c703da5f279
---
 doc/guix.texi                    | 3 +++
 gnu/services/version-control.scm | 8 ++++++--
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index 4daeab924b..299f84bb49 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -41078,6 +41078,9 @@ Version Control Services
 @item @code{enable} (default: @code{'("help" "desc" "info" "perms" "writable" "ssh-authkeys" "git-config" "daemon" "gitweb")})
 This setting controls the commands and features to enable within Gitolite.
 
+@item @code{extra-content} (default: @code{""})
+Extra content to add verbatim into the @code{%RC} hash.
+
 @end table
 @end deftp
 
diff --git a/gnu/services/version-control.scm b/gnu/services/version-control.scm
index 2b99e8db86..9bd17334fe 100644
--- a/gnu/services/version-control.scm
+++ b/gnu/services/version-control.scm
@@ -64,6 +64,7 @@ (define-module (gnu services version-control)
             gitolite-rc-file-host-name
             gitolite-rc-file-roles
             gitolite-rc-file-enable
+            gitolite-rc-file-extra-content
 
             gitolite-service-type
 
@@ -270,13 +271,15 @@ (define-record-type* <gitolite-rc-file>
                               "ssh-authkeys"
                               "git-config"
                               "daemon"
-                              "gitweb"))))
+                              "gitweb")))
+  (extra-content   gitolite-rc-extra-content
+                   (default "")))
 
 (define-gexp-compiler (gitolite-rc-file-compiler
                        (file <gitolite-rc-file>) system target)
   (match-record file <gitolite-rc-file>
                 ( umask local-code unsafe-pattern git-config-keys log-extra
-                  host-name roles enable)
+                  host-name roles enable extra-content)
     (apply text-file* "gitolite.rc"
            `("%RC = (\n"
              "    UMASK => " ,(format #f "~4,'0o" umask) ",\n"
@@ -302,6 +305,7 @@ (define-gexp-compiler (gitolite-rc-file-compiler
                       (simple-format #f "        '~A',\n" value))
                     enable)
              "    ],\n"
+             ,extra-content "\n"
              ");\n"
              "\n"
              ,(if unsafe-pattern
-- 
2.49.0