Browse Source

services: 'service-parameters' becomes 'service-value'.

* gnu/services.scm (<service>)[parameters]: Rename to...
[value]: ... this.
Change calls to 'service-parameters' to 'service-value'.
* gnu/system.scm, gnu/tests/base.scm,
guix/scripts/system.scm, tests/services.scm: Likewise.
* doc/guix.texi (Service Reference): Adjust accordingly.
gn-latest-20200428
Ludovic Courtès 5 years ago
parent
commit
efe7d19a9e
No known key found for this signature in database GPG Key ID: 90B11993D9AEBB5
  1. 2
      doc/guix.texi
  2. 21
      gnu/services.scm
  3. 8
      gnu/system.scm
  4. 2
      gnu/tests/base.scm
  5. 6
      guix/scripts/system.scm
  6. 4
      tests/services.scm

2
doc/guix.texi

@ -15684,7 +15684,7 @@ Return true if @var{obj} is a service.
Return the type of @var{service}---i.e., a @code{<service-type>} object.
@end deffn
@deffn {Scheme Procedure} service-parameters @var{service}
@deffn {Scheme Procedure} service-value @var{service}
Return the value associated with @var{service}. It represents its
parameters.
@end deffn

21
gnu/services.scm

@ -51,7 +51,8 @@
service
service?
service-kind
service-parameters
service-value
service-parameters ;deprecated
simple-service
modify-services
@ -142,10 +143,14 @@
;; Services of a given type.
(define-record-type <service>
(service type parameters)
(service type value)
service?
(type service-kind)
(parameters service-parameters))
(value service-value))
(define service-parameters
;; Deprecated alias.
service-value)
(define (simple-service name target value)
"Return a service that extends TARGET with VALUE. This works by creating a
@ -161,7 +166,7 @@ singleton service type NAME, of which the returned service is an instance."
service)
((_ svc (kind param => exp ...) clauses ...)
(if (eq? (service-kind svc) kind)
(let ((param (service-parameters svc)))
(let ((param (service-value svc)))
(service (service-kind svc)
(begin exp ...)))
(%modify-service svc clauses ...)))))
@ -321,7 +326,7 @@ file."
(define* (activation-service->script service)
"Return as a monadic value the activation script for SERVICE, a service of
ACTIVATION-SCRIPT-TYPE."
(activation-script (service-parameters service)))
(activation-script (service-value service)))
(define (activation-script gexps)
"Return the system's activation script, which evaluates GEXPS."
@ -432,7 +437,7 @@ and FILE could be \"/usr/bin/env\"."
(define (etc-directory service)
"Return the directory for SERVICE, a service of type ETC-SERVICE-TYPE."
(files->etc-directory (service-parameters service)))
(files->etc-directory (service-value service)))
(define (files->etc-directory files)
(file-union "etc" files))
@ -605,7 +610,7 @@ TARGET-TYPE; return the root service adjusted accordingly."
(match (find (matching-extension target)
(service-type-extensions (service-kind service)))
(($ <service-extension> _ compute)
(compute (service-parameters service))))))
(compute (service-value service))))))
(match (filter (lambda (service)
(eq? (service-kind service) target-type))
@ -616,7 +621,7 @@ TARGET-TYPE; return the root service adjusted accordingly."
(extensions (map (apply-extension sink) dependents))
(extend (service-type-extend (service-kind sink)))
(compose (service-type-compose (service-kind sink)))
(params (service-parameters sink)))
(params (service-value sink)))
;; We distinguish COMPOSE and EXTEND because PARAMS typically has a
;; different type than the elements of EXTENSIONS.
(if extend

8
gnu/system.scm

@ -615,7 +615,7 @@ hardware-related operations as necessary when booting a Linux container."
(let* ((services (operating-system-services os #:container? container?))
(boot (fold-services services #:target-type boot-service-type)))
;; BOOT is the script as a monadic value.
(service-parameters boot)))
(service-value boot)))
(define (operating-system-user-accounts os)
"Return the list of user accounts of OS."
@ -623,12 +623,12 @@ hardware-related operations as necessary when booting a Linux container."
(account (fold-services services
#:target-type account-service-type)))
(filter user-account?
(service-parameters account))))
(service-value account))))
(define (operating-system-shepherd-service-names os)
"Return the list of Shepherd service names for OS."
(append-map shepherd-service-provision
(service-parameters
(service-value
(fold-services (operating-system-services os)
#:target-type
shepherd-root-service-type))))
@ -638,7 +638,7 @@ hardware-related operations as necessary when booting a Linux container."
(let* ((services (operating-system-services os #:container? container?))
(system (fold-services services)))
;; SYSTEM contains the derivation as a monadic value.
(service-parameters system)))
(service-value system)))
(define* (operating-system-profile os #:key container?)
"Return a derivation that builds the system profile of OS."

2
gnu/tests/base.scm

@ -56,7 +56,7 @@ passed a gexp denoting the marionette, and it must return gexp that is
inserted before the first test. This is used to introduce an extra
initialization step, such as entering a LUKS passphrase."
(define special-files
(service-parameters
(service-value
(fold-services (operating-system-services os)
#:target-type special-files-service-type)))

6
guix/scripts/system.scm

@ -289,7 +289,7 @@ This is currently very conservative in that it does not stop or unload any
running service. Unloading or stopping the wrong service ('udev', say) could
bring the system down."
(define new-services
(service-parameters
(service-value
(fold-services (operating-system-services os)
#:target-type shepherd-root-service-type)))
@ -487,7 +487,7 @@ open connection to the store."
(define (service-node-label service)
"Return a label to represent SERVICE."
(let ((type (service-kind service))
(value (service-parameters service)))
(value (service-value service)))
(string-append (symbol->string (service-type-name type))
(cond ((or (number? value) (symbol? value))
(string-append " " (object->string value)))
@ -711,7 +711,7 @@ output when building a system derivation, such as a disk image."
(let* ((services (operating-system-services os))
(pid1 (fold-services services
#:target-type shepherd-root-service-type))
(shepherds (service-parameters pid1)) ;list of <shepherd-service>
(shepherds (service-value pid1)) ;list of <shepherd-service>
(sinks (filter (lambda (service)
(null? (shepherd-service-requirement service)))
shepherds)))

4
tests/services.scm

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -75,7 +75,7 @@
(iota 5 1)))
#:target-type t1)))
(and (eq? (service-kind r) t1)
(service-parameters r))))
(service-value r))))
(test-assert "fold-services, ambiguity"
(let* ((t1 (service-type (name 't1) (extensions '())

Loading…
Cancel
Save