services: cgit: Enforce serialization order.
* gnu/services/cgit.scm (serialize-cgit-configuration): New procedure that serializes fields with a precise order. (cgit-activation): Replace the generic SERIALIZE-CONFIGURATION with SERIALIZE-CGIT-CONFIGURATION.
This commit is contained in:
parent
ad05e96e14
commit
80b76b9350
|
@ -631,6 +631,19 @@ for cgit to allow access to that repository.")
|
||||||
(list '())
|
(list '())
|
||||||
"Extra options will be appended to cgitrc file."))
|
"Extra options will be appended to cgitrc file."))
|
||||||
|
|
||||||
|
;; This distinguishes fields whose order matters, and makes sure further
|
||||||
|
;; changes won't inadvertently change the order.
|
||||||
|
(define (serialize-cgit-configuration config)
|
||||||
|
(define (rest? field)
|
||||||
|
(not (memq (configuration-field-name field)
|
||||||
|
'(repositories))))
|
||||||
|
#~(string-append
|
||||||
|
#$(let ((rest (filter rest? cgit-configuration-fields)))
|
||||||
|
(serialize-configuration config rest))
|
||||||
|
#$(serialize-repository-cgit-configuration-list
|
||||||
|
'repositories
|
||||||
|
(cgit-configuration-repositories config))))
|
||||||
|
|
||||||
(define-configuration opaque-cgit-configuration
|
(define-configuration opaque-cgit-configuration
|
||||||
(cgit
|
(cgit
|
||||||
(package cgit)
|
(package cgit)
|
||||||
|
@ -651,7 +664,7 @@ for cgit to allow access to that repository.")
|
||||||
(config-str
|
(config-str
|
||||||
(if opaque-config?
|
(if opaque-config?
|
||||||
(opaque-cgit-configuration-cgitrc config)
|
(opaque-cgit-configuration-cgitrc config)
|
||||||
(serialize-configuration config cgit-configuration-fields))))
|
(serialize-cgit-configuration config))))
|
||||||
#~(begin
|
#~(begin
|
||||||
(use-modules (guix build utils))
|
(use-modules (guix build utils))
|
||||||
(mkdir-p #$(if opaque-config?
|
(mkdir-p #$(if opaque-config?
|
||||||
|
|
Loading…
Reference in New Issue