services: zabbix: Support gexps in configuration serializer.
This makes it possible to do e.g. (include-files (list (local-file "foo.conf"))). * gnu/services/monitoring.scm (serialize-field, serialize-list, serialize-include-files, serialize-extra-options): Rewrite as gexps. (zabbix-server-config-file, zabbix-agent-config-file): Simplify builders by using FORMAT.master
parent
dea8810036
commit
ab8b76b735
|
@ -212,13 +212,16 @@ Prometheus.")
|
|||
#\-))))
|
||||
|
||||
(define (serialize-field field-name val)
|
||||
(format #t "~a=~a~%" (uglify-field-name field-name) val))
|
||||
#~(format #f "~a=~a~%" #$(uglify-field-name field-name) #$val))
|
||||
|
||||
(define (serialize-number field-name val)
|
||||
(serialize-field field-name (number->string val)))
|
||||
|
||||
(define (serialize-list field-name val)
|
||||
(if (null? val) "" (serialize-field field-name (string-join val ","))))
|
||||
#~(if (null? '#$val)
|
||||
""
|
||||
#$(serialize-field field-name (string-join val ","))))
|
||||
|
||||
|
||||
(define (serialize-string field-name val)
|
||||
(if (and (string? val) (string=? val ""))
|
||||
|
@ -233,12 +236,12 @@ Prometheus.")
|
|||
(define include-files? list?)
|
||||
|
||||
(define (serialize-include-files field-name val)
|
||||
(if (null? val) "" (for-each (cut serialize-field 'include <>) val)))
|
||||
#~(string-append #$@(map (cut serialize-field 'include <>) val)))
|
||||
|
||||
(define extra-options? string?)
|
||||
|
||||
(define (serialize-extra-options field-name val)
|
||||
(if (null? val) "" (display val)))
|
||||
#~(if (= 0 (string-length #$val)) "" #$(format #f "~a~%" val)))
|
||||
|
||||
(define (nginx-server-configuration-list? val)
|
||||
(and (list? val) (and-map nginx-server-configuration? val)))
|
||||
|
@ -321,13 +324,9 @@ configuration file."))
|
|||
#~(begin
|
||||
(call-with-output-file #$output
|
||||
(lambda (port)
|
||||
(display "# Generated by 'zabbix-server-service'.\n" port)
|
||||
(display #$(with-output-to-string
|
||||
(lambda ()
|
||||
(serialize-configuration
|
||||
config zabbix-server-configuration-fields)))
|
||||
port)
|
||||
#t)))))
|
||||
(format port "# Generated by 'zabbix-server-service'.~%")
|
||||
(format port #$(serialize-configuration
|
||||
config zabbix-server-configuration-fields)))))))
|
||||
|
||||
(define (zabbix-server-activation config)
|
||||
"Return the activation gexp for CONFIG."
|
||||
|
@ -509,13 +508,9 @@ configuration file."))
|
|||
#~(begin
|
||||
(call-with-output-file #$output
|
||||
(lambda (port)
|
||||
(display "# Generated by 'zabbix-agent-service'.\n" port)
|
||||
(display #$(with-output-to-string
|
||||
(lambda ()
|
||||
(serialize-configuration
|
||||
config zabbix-agent-configuration-fields)))
|
||||
port)
|
||||
#t)))))
|
||||
(format port "# Generated by 'zabbix-agent-service'.~%")
|
||||
(format port #$(serialize-configuration
|
||||
config zabbix-agent-configuration-fields)))))))
|
||||
|
||||
(define (zabbix-agent-shepherd-service config)
|
||||
"Return a <shepherd-service> for Zabbix agent with CONFIG."
|
||||
|
|
Reference in New Issue