~ruther/guix-local

3a391e68dafe81560d3e4936a1ec5ac3b06d43bb — Ludovic Courtès 10 years ago 5adbe65
services: Clarify extend/compose of BOOT-SERVICE-TYPE.

* gnu/services.scm (compute-boot-script): Add first placeholder
  parameter.
  (boot-service-type): Change 'compose' to APPEND, and 'extend' to
  COMPUTE-BOOT-SCRIPT.
1 files changed, 5 insertions(+), 5 deletions(-)

M gnu/services.scm
M gnu/services.scm => gnu/services.scm +5 -5
@@ 182,7 182,7 @@ This is a shorthand for (map (lambda (svc) ...) %base-services)."
;;; Core services.
;;;

(define (compute-boot-script mexps)
(define (compute-boot-script _ mexps)
  (mlet %store-monad ((gexps (sequence %store-monad mexps)))
    (gexp->file "boot"
                #~(begin


@@ 203,16 203,14 @@ This is a shorthand for (map (lambda (svc) ...) %base-services)."
                    ;; Activate the system and spawn dmd.
                    #$@gexps))))

(define (second-argument a b) b)

(define boot-service-type
  ;; The service of this type is extended by being passed gexps as monadic
  ;; values.  It aggregates them in a single script, as a monadic value, which
  ;; becomes its 'parameters'.  It is the only service that extends nothing.
  (service-type (name 'boot)
                (extensions '())
                (compose compute-boot-script)
                (extend second-argument)))
                (compose append)
                (extend compute-boot-script)))

(define %boot-service
  ;; This is the ultimate service, the root of the service DAG.


@@ 296,6 294,8 @@ ACTIVATION-SCRIPT-TYPE."
  (mlet %store-monad ((script (activation-script gexps)))
    (return #~(primitive-load #$script))))

(define (second-argument a b) b)

(define activation-service-type
  (service-type (name 'activate)
                (extensions