diff options
author | Christopher Baines <mail@cbaines.net> | 2018-04-25 08:18:38 +0100 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2018-05-18 10:42:58 +0100 |
commit | dc7ee57b6864a80fc21574b36a10f8b8a7e36bb5 (patch) | |
tree | 6cd47a1c22f351c516cc91bd2a0d3fc59cccd459 | |
parent | 963b68f7f6e6e9aff13ad7cf52ed0578e6493b86 (diff) | |
download | guix-dc7ee57b6864a80fc21574b36a10f8b8a7e36bb5.tar guix-dc7ee57b6864a80fc21574b36a10f8b8a7e36bb5.tar.gz |
services: cgit: Make project-list permit a file-object.cgit-changes
Instead of having the service manage the list, it's useful to be able to point
this at an existing file, for example, when using cgit together with gitolite.
* gnu/services/cgit.scm (project-list?): New procedure.
(serialize-project-list): Handle file-object values.
(<cgit-configuration>): Change the predicate for project-list to allow lists
and file-objects.
-rw-r--r-- | doc/guix.texi | 2 | ||||
-rw-r--r-- | gnu/services/cgit.scm | 10 |
2 files changed, 9 insertions, 3 deletions
diff --git a/doc/guix.texi b/doc/guix.texi index 005c0597ad..81ad4f48f1 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -19241,7 +19241,7 @@ Defaults to @samp{#f}. @end deftypevr -@deftypevr {@code{cgit-configuration} parameter} list project-list +@deftypevr {@code{cgit-configuration} parameter} project-list project-list A list of subdirectories inside of @code{repository-directory}, relative to it, that should loaded as Git repositories. An empty list means that all subdirectories will be loaded. diff --git a/gnu/services/cgit.scm b/gnu/services/cgit.scm index 3183535d4a..3289d37333 100644 --- a/gnu/services/cgit.scm +++ b/gnu/services/cgit.scm @@ -116,6 +116,10 @@ (define (serialize-file-object field-name val) (serialize-string field-name val)) +(define (project-list? val) + (or (list? val) + (file-object? val))) + ;;; ;;; Serialize <nginx-server-configuration> @@ -168,7 +172,9 @@ (if (null? val) "" (serialize-field 'project-list - (plain-file "project-list" (string-join val "\n"))))) + (if (file-object? val) + val + (plain-file "project-list" (string-join val "\n")))))) (define (serialize-extra-options extra-options) (string-join extra-options "\n" 'suffix)) @@ -547,7 +553,7 @@ disabled.") "Flag which, when set to @samp{#t}, will make cgit omit the standard header on all pages.") (project-list - (list '()) + (project-list '()) "A list of subdirectories inside of @code{repository-directory}, relative to it, that should loaded as Git repositories. An empty list means that all subdirectories will be loaded.") |