summary refs log tree commit diff
path: root/gnu/system
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2015-09-09 09:17:31 +0200
committerLudovic Courtès <ludo@gnu.org>2015-10-10 22:46:14 +0200
commitbe1c2c54d9f918f50f71c6d32a72d4498c07504c (patch)
tree642d087516b3ae7c2ffad6444e25b410712c92be /gnu/system
parentce8a6dfc43265787c23fb93d3877fbcacb0451e4 (diff)
downloadguix-be1c2c54d9f918f50f71c6d32a72d4498c07504c.tar.gz
system: Make service procedures non-monadic.
* gnu/services/avahi.scm (configuration-file): Use 'plain-file' instead
  of 'text-file'.
  (avahi-service): Turn into a regular procedure that returns a <service>.
* gnu/services/base.scm (root-file-system-service, file-system-service,
  user-unmount-service, user-processes-service, host-name-service,
  console-keymap-service, console-font-service, mingetty-service,
  nscd.conf-file, nscd-service): Likewise.
  (%default-syslog.conf): New variable.
  (syslog-service): Use it.  Turn into a regular procedure.
  (guix-service, udev-rules-union, kvm-udev-rule, udev-service,
  device-mapping-service, swap-service): Likewise.
* gnu/services/databases.scm (%default-postgres-hba,
  %default-postgres-ident): Use 'plain-file' instead of 'text-file'.
  (%default-postgres-config): Use 'mixed-text-file' instead of
  'text-file*'.
  (postgresql-service):  Use 'program-file' instead of 'gexp->script'.
  Turn into a regular procedure.
* gnu/services/desktop.scm (dbus-configuration-directory): Use
  'computed-file' instead of 'gexp->derivation'.
  (upower-configuration-file, geoclue-configuration-file,
  elogind-configuration-file): Use 'plain-file' instead of 'text-file'.
  (dbus-service, upower-service, colord-service, geoclue-service,
  polkit-service, elogind-service): Turn into regular procedures.
  (%desktop-services): Remove use of 'mlet' when iterating on
  %BASE-SERVICES.
* gnu/services/lirc.scm (lirc-service): Turn into a regular procedure.
* gnu/services/networking.scm (static-networking-service,
  dhcp-client-service, ntp-service, tor-service, bitlbee-service,
  wicd-service): Likewise.
* gnu/services/ssh.scm (lsh-service): Likewise.
* gnu/services/web.scm (nginx-service): Likewise.
* gnu/services/xorg.scm (xorg-configuration-file): Use 'mixed-text-file'
  instead of 'text-file*'.
  (xorg-start-command, slim-service): Turn into regular procedures.
  (xinitrc): Use 'program-file' instead of 'gexp->script'.
* gnu/system/install.scm (cow-store-service,
  configuration-template-service): Turn into regular procedures.
* gnu/system.scm (other-file-system-services, device-mapping-services,
  swap-services, essential-services, operating-system-services,
  user-shells, operating-system-accounts): Remove now unnecessary
  'mlet' and turn into regular procedures.
  (operating-system-etc-directory, operating-system-activation-script,
  operating-system-boot-script): Adjust accordingly.
* doc/guix.texi (Base Services, Networking Services, X Window, Desktop
  Services, Database Services, Web Services, Various Services, Name
  Service Switch): Adjust accordingly.
Diffstat (limited to 'gnu/system')
-rw-r--r--gnu/system/install.scm84
1 files changed, 41 insertions, 43 deletions
diff --git a/gnu/system/install.scm b/gnu/system/install.scm
index dc5a47a293..1ba36c394b 100644
--- a/gnu/system/install.scm
+++ b/gnu/system/install.scm
@@ -163,32 +163,31 @@ current store is on a RAM disk."
   "Return a service that makes the store copy-on-write, such that writes go to
 the user's target storage device rather than on the RAM disk."
   ;; See <http://bugs.gnu.org/18061> for the initial report.
-  (with-monad %store-monad
-    (return (service
-             (requirement '(root-file-system user-processes))
-             (provision '(cow-store))
-             (documentation
-              "Make the store copy-on-write, with writes going to \
+  (service
+   (requirement '(root-file-system user-processes))
+   (provision '(cow-store))
+   (documentation
+    "Make the store copy-on-write, with writes going to \
 the given target.")
 
-             ;; This is meant to be explicitly started by the user.
-             (auto-start? #f)
-
-             (start #~(case-lambda
-                        ((target)
-                         #$(make-cow-store #~target)
-                         target)
-                        (else
-                         ;; Do nothing, and mark the service as stopped.
-                         #f)))
-             (stop #~(lambda (target)
-                       ;; Delete the temporary directory, but leave everything
-                       ;; mounted as there may still be processes using it
-                       ;; since 'user-processes' doesn't depend on us.  The
-                       ;; 'user-unmount' service will unmount TARGET
-                       ;; eventually.
-                       (delete-file-recursively
-                        (string-append target #$%backing-directory))))))))
+   ;; This is meant to be explicitly started by the user.
+   (auto-start? #f)
+
+   (start #~(case-lambda
+              ((target)
+               #$(make-cow-store #~target)
+               target)
+              (else
+               ;; Do nothing, and mark the service as stopped.
+               #f)))
+   (stop #~(lambda (target)
+             ;; Delete the temporary directory, but leave everything
+             ;; mounted as there may still be processes using it
+             ;; since 'user-processes' doesn't depend on us.  The
+             ;; 'user-unmount' service will unmount TARGET
+             ;; eventually.
+             (delete-file-recursively
+              (string-append target #$%backing-directory))))))
 
 (define (configuration-template-service)
   "Return a dummy service whose purpose is to install an operating system
@@ -204,25 +203,24 @@ configuration template file in the installation system."
          '(("gnu/system/examples/bare-bones.tmpl" -> "bare-bones.scm")
            ("gnu/system/examples/desktop.tmpl" -> "desktop.scm"))))
 
-  (with-monad %store-monad
-    (return (service
-             (requirement '(root-file-system))
-             (provision '(os-config-template))
-             (documentation
-              "This dummy service installs an OS configuration template.")
-             (start #~(const #t))
-             (stop  #~(const #f))
-             (activate
-              #~(begin
-                  (use-modules (ice-9 match)
-                               (guix build utils))
-
-                  (mkdir-p "/etc/configuration")
-                  (for-each (match-lambda
-                              ((file target)
-                               (unless (file-exists? target)
-                                 (copy-file file target))))
-                            '#$templates)))))))
+  (service
+   (requirement '(root-file-system))
+   (provision '(os-config-template))
+   (documentation
+    "This dummy service installs an OS configuration template.")
+   (start #~(const #t))
+   (stop  #~(const #f))
+   (activate
+    #~(begin
+        (use-modules (ice-9 match)
+                     (guix build utils))
+
+        (mkdir-p "/etc/configuration")
+        (for-each (match-lambda
+                    ((file target)
+                     (unless (file-exists? target)
+                       (copy-file file target))))
+                  '#$templates)))))
 
 (define %nscd-minimal-caches
   ;; Minimal in-memory caching policy for nscd.