services: nfs: Allow pipefs-service-type to be extended.
* gnu/services/nfs.scm (pipefs-service-type): Rewrite using SERVICE-TYPE to add ability to extend the service.master
parent
ba1808d5e7
commit
25c8c8cd4f
|
@ -24,6 +24,7 @@
|
|||
#:use-module (gnu packages linux)
|
||||
#:use-module (guix)
|
||||
#:use-module (guix records)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (gnu build file-systems)
|
||||
#:export (rpcbind-service-type
|
||||
|
@ -96,8 +97,7 @@
|
|||
(default default-pipefs-directory)))
|
||||
|
||||
(define pipefs-service-type
|
||||
(shepherd-service-type
|
||||
'pipefs
|
||||
(let ((proc
|
||||
(lambda (config)
|
||||
(define pipefs-directory (pipefs-configuration-mount-point config))
|
||||
|
||||
|
@ -113,6 +113,17 @@
|
|||
(stop #~(lambda (pid . args)
|
||||
(umount #$pipefs-directory MNT_DETACH)
|
||||
(not (member #$pipefs-directory (mount-points)))))))))
|
||||
(service-type
|
||||
(name 'pipefs)
|
||||
(extensions
|
||||
(list (service-extension shepherd-root-service-type
|
||||
(compose list proc))))
|
||||
;; We use the extensions feature to allow other services to automatically
|
||||
;; configure and start this service. Only one value can be provided. We
|
||||
;; override it with the value returned by the extending service.
|
||||
(compose identity)
|
||||
(extend (lambda (config values) (first values)))
|
||||
(default-value (pipefs-configuration)))))
|
||||
|
||||
|
||||
|
||||
|
|
Reference in New Issue