summary refs log tree commit diff
path: root/gnu/services
diff options
context:
space:
mode:
authorTobias Geerinckx-Rice <me@tobias.gr>2020-11-18 18:07:57 +0100
committerTobias Geerinckx-Rice <me@tobias.gr>2020-11-18 18:07:57 +0100
commita45f8223e1a05ac3583708061209a1380b8a9d40 (patch)
tree467eb1de1bcae7bc0d300fff021783bc4b455b53 /gnu/services
parentb4b08ee53bb11016a7471e20a940f8e343a3b61d (diff)
parent207c3c594e22b678ddcea8ebc78f19b839612187 (diff)
downloadguix-a45f8223e1a05ac3583708061209a1380b8a9d40.tar.gz
Merge remote-tracking branch 'upstream/version-1.2.0'
Diffstat (limited to 'gnu/services')
-rw-r--r--gnu/services/base.scm15
-rw-r--r--gnu/services/shepherd.scm13
2 files changed, 11 insertions, 17 deletions
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index e6341e3cd9..065e89d312 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -291,19 +291,8 @@ This service must be the root of the service dependency graph so that its
 (define (file-system->shepherd-service-name file-system)
   "Return the symbol that denotes the service mounting and unmounting
 FILE-SYSTEM."
-  (define valid-characters
-    ;; Valid store characters; see 'checkStoreName' in the daemon.
-    (string->char-set
-     "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+-._?="))
-
-  (define mount-point
-    (string-map (lambda (chr)
-                  (if (char-set-contains? valid-characters chr)
-                      chr
-                      #\-))
-                (file-system-mount-point file-system)))
-
-  (symbol-append 'file-system- (string->symbol mount-point)))
+  (symbol-append 'file-system-
+                 (string->symbol (file-system-mount-point file-system))))
 
 (define (mapped-device->shepherd-service-name md)
   "Return the symbol that denotes the shepherd service of MD, a <mapped-device>."
diff --git a/gnu/services/shepherd.scm b/gnu/services/shepherd.scm
index e14ceca231..1faeb350df 100644
--- a/gnu/services/shepherd.scm
+++ b/gnu/services/shepherd.scm
@@ -224,16 +224,21 @@ which is not provided by any service")
 
   (for-each assert-satisfied-requirements services))
 
+(define %store-characters
+  ;; Valid store characters; see 'checkStoreName' in the daemon.
+  (string->char-set
+   "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+-._?="))
+
 (define (shepherd-service-file-name service)
   "Return the file name where the initialization code for SERVICE is to be
 stored."
   (let ((provisions (string-join (map symbol->string
                                       (shepherd-service-provision service)))))
     (string-append "shepherd-"
-                   (string-map (match-lambda
-                                 (#\/ #\-)
-                                 (#\  #\-)
-                                 (chr chr))
+                   (string-map (lambda (chr)
+                                 (if (char-set-contains? %store-characters chr)
+                                     chr
+                                     #\-))
                                provisions)
                    ".scm")))