diff options
| author | Tomas Volf <~@wolfsden.cz> | 2025-04-01 00:10:20 +0200 |
|---|---|---|
| committer | Maxim Cournoyer <maxim.cournoyer@gmail.com> | 2025-04-03 21:16:24 +0900 |
| commit | 85e6371a3fed83701d74dfc71fe27ec93987be71 (patch) | |
| tree | 83254c6fdae40d5fe070aeab5e72bcaa41de38a5 | |
| parent | 24396e8327d02f46e50b58a31545f26e21be5425 (diff) | |
services: gitolite-service-type: Allow setting the admin name.
* gnu/services/version-control.scm (<gitolite-configuration>): Add admin-name
field.
(gitolite-activation): Use it.
* doc/guix.texi (Version Control Services): Document it. Remove the wrong
default value of admin-pubkey. State the need for .pub extension.
Change-Id: Idadf4b2697cee6d1da10e6ba03bdc2e1d729c417
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
| -rw-r--r-- | doc/guix.texi | 9 | ||||
| -rw-r--r-- | gnu/services/version-control.scm | 17 |
2 files changed, 19 insertions, 7 deletions
diff --git a/doc/guix.texi b/doc/guix.texi index 3f38c11027b..3d6080dbaa5 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -41010,7 +41010,7 @@ representing the configuration for Gitolite. A ``file-like'' object (@pxref{G-Expressions, file-like objects}), representing the git configuration for Gitolite. -@item @code{admin-pubkey} (default: @code{#f}) +@item @code{admin-pubkey} A ``file-like'' object (@pxref{G-Expressions, file-like objects}) used to setup Gitolite. This will be inserted in to the @file{keydir} directory within the gitolite-admin repository. @@ -41021,6 +41021,13 @@ To specify the SSH key as a string, use the @code{plain-file} function. (plain-file "yourname.pub" "ssh-rsa AAAA... guix@@example.com") @end lisp +The file has to have @file{.pub} extension. + +@item @code{admin-name} (default: @code{#f}) +Usually the key name is derived by taking a base name of the +@code{admin-pubkey}. The resulting file name is the name of the +gitolite user. You can use this field to override the automatic name. + @end table @end deftp diff --git a/gnu/services/version-control.scm b/gnu/services/version-control.scm index e73e77e0b2f..51da1c59cb1 100644 --- a/gnu/services/version-control.scm +++ b/gnu/services/version-control.scm @@ -53,6 +53,7 @@ gitolite-configuration-user gitolite-configuration-rc-file gitolite-configuration-admin-pubkey + gitolite-configuration-admin-name <gitolite-rc-file> gitolite-rc-file @@ -377,7 +378,9 @@ access to exported repositories under @file{/srv/git}." (default (gitolite-rc-file))) (git-config gitolite-configuration-git-config (default (gitolite-git-configuration))) - (admin-pubkey gitolite-configuration-admin-pubkey)) + (admin-pubkey gitolite-configuration-admin-pubkey) + (admin-name gitolite-configuration-admin-name + (default #f))) (define (gitolite-accounts config) (match-record config <gitolite-configuration> @@ -396,17 +399,19 @@ access to exported repositories under @file{/srv/git}." (define (gitolite-activation config) (match-record config <gitolite-configuration> ( package user group home-directory rc-file admin-pubkey - git-config) + admin-name git-config) #~(begin (use-modules (ice-9 match) (guix build utils)) (let* ((user-info (getpwnam #$user)) (admin-pubkey #$admin-pubkey) - (pubkey-file (string-append - #$home-directory "/" - (basename - (strip-store-file-name admin-pubkey)))) + (pubkey-file (if #$admin-name + (string-append #$admin-name ".pub") + (string-append + #$home-directory "/" + (basename + (strip-store-file-name admin-pubkey))))) (rc-file #$(string-append home-directory "/.gitolite.rc"))) ;; activate-users+groups in (gnu build activation) sets the |
