services: cgit: Add support for project-list.
* doc/guix.texi (Version Control Services): Update accordingly. * gnu/services/cgit.scm (cgit-configuration)[project-list]: New field. (serialize-project-list): New procedure that uses PLAIN-FILE to generate a file from the string list given by the user as input. (serialize-cgit-configuration): Make sure to serialize 'project-list' before 'repostory-directory'.
This commit is contained in:
parent
80b76b9350
commit
e5fe544eaa
|
@ -19017,6 +19017,15 @@ Defaults to @samp{#f}.
|
||||||
|
|
||||||
@end deftypevr
|
@end deftypevr
|
||||||
|
|
||||||
|
@deftypevr {@code{cgit-configuration} parameter} 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.
|
||||||
|
|
||||||
|
Defaults to @samp{()}.
|
||||||
|
|
||||||
|
@end deftypevr
|
||||||
|
|
||||||
@deftypevr {@code{cgit-configuration} parameter} file-object readme
|
@deftypevr {@code{cgit-configuration} parameter} file-object readme
|
||||||
Text which will be used as default value for @code{cgit-repo-readme}.
|
Text which will be used as default value for @code{cgit-repo-readme}.
|
||||||
|
|
||||||
|
|
|
@ -163,6 +163,12 @@
|
||||||
((path text)
|
((path text)
|
||||||
(format #f "repo.module-link.~a=~a\n" path text)))))
|
(format #f "repo.module-link.~a=~a\n" path text)))))
|
||||||
|
|
||||||
|
(define (serialize-project-list _ val)
|
||||||
|
(if (null? val) ""
|
||||||
|
(serialize-field
|
||||||
|
'project-list
|
||||||
|
(plain-file "project-list" (string-join val "\n")))))
|
||||||
|
|
||||||
(define repository-directory? string?)
|
(define repository-directory? string?)
|
||||||
|
|
||||||
(define (serialize-repository-directory _ val)
|
(define (serialize-repository-directory _ val)
|
||||||
|
@ -536,13 +542,11 @@ disabled.")
|
||||||
(boolean #f)
|
(boolean #f)
|
||||||
"Flag which, when set to @samp{#t}, will make cgit omit the standard
|
"Flag which, when set to @samp{#t}, will make cgit omit the standard
|
||||||
header on all pages.")
|
header on all pages.")
|
||||||
;; TODO: cgit expects a file name
|
(project-list
|
||||||
;; that should be created from a list of strings provided by the user.
|
(list '())
|
||||||
;;
|
"A list of subdirectories inside of @code{repository-directory}, relative
|
||||||
;; (project-list
|
to it, that should loaded as Git repositories. An empty list means that all
|
||||||
;; (string "")
|
subdirectories will be loaded.")
|
||||||
;; "A list of subdirectories inside of @code{repository-directory},
|
|
||||||
;; relative to it, that should loaded as Git repositories.")
|
|
||||||
(readme
|
(readme
|
||||||
(file-object "")
|
(file-object "")
|
||||||
"Text which will be used as default value for @code{cgit-repo-readme}.")
|
"Text which will be used as default value for @code{cgit-repo-readme}.")
|
||||||
|
@ -636,10 +640,18 @@ for cgit to allow access to that repository.")
|
||||||
(define (serialize-cgit-configuration config)
|
(define (serialize-cgit-configuration config)
|
||||||
(define (rest? field)
|
(define (rest? field)
|
||||||
(not (memq (configuration-field-name field)
|
(not (memq (configuration-field-name field)
|
||||||
'(repositories))))
|
'(project-list
|
||||||
|
repository-directory
|
||||||
|
repositories))))
|
||||||
#~(string-append
|
#~(string-append
|
||||||
#$(let ((rest (filter rest? cgit-configuration-fields)))
|
#$(let ((rest (filter rest? cgit-configuration-fields)))
|
||||||
(serialize-configuration config rest))
|
(serialize-configuration config rest))
|
||||||
|
#$(serialize-project-list
|
||||||
|
'project-list
|
||||||
|
(cgit-configuration-project-list config))
|
||||||
|
#$(serialize-repository-directory
|
||||||
|
'repository-directory
|
||||||
|
(cgit-configuration-repository-directory config))
|
||||||
#$(serialize-repository-cgit-configuration-list
|
#$(serialize-repository-cgit-configuration-list
|
||||||
'repositories
|
'repositories
|
||||||
(cgit-configuration-repositories config))))
|
(cgit-configuration-repositories config))))
|
||||||
|
|
Loading…
Reference in New Issue