summary refs log tree commit diff
path: root/gnu/home/services
diff options
context:
space:
mode:
authorTobias Geerinckx-Rice <me@tobias.gr>2022-11-13 01:00:00 +0100
committerTobias Geerinckx-Rice <me@tobias.gr>2022-11-13 01:00:00 +0100
commit39e4e00f75be8055300cb0afffb8bd4b4d35f2cc (patch)
treec75f25be3cf5fba52e03b79e9ec861427655abc9 /gnu/home/services
parent0ad036b0907dd080a745fe8dd209ffcc5b0389d3 (diff)
downloadguix-39e4e00f75be8055300cb0afffb8bd4b4d35f2cc.tar.gz
services: configuration: Revert to a working ‘guix home’.
This reverts commit 543d971ed2a1d9eb934af1f51930741d7cc4e7ef, and
its dependent commit 9b21cd2e9a614f1937769caf3917a791b151d841, which
appear to have triggered a recent wave of ‘guix home’ regressions
involving (services (list (service home-bash-service-type))):

In gnu/home/services/shells.scm:
    504:7  3 (home-bash-extensions #<<home-bash-configuration> package: #<package bash@5.1.8 gnu/packages/ba…> …)
In unknown file:
           2 (append #<<location> file: "…" line: 14 column: 12> ())
In ice-9/boot-9.scm:
  1685:16  1 (raise-exception _ #:continuable? _)
  1685:16  0 (raise-exception _ #:continuable? _)

ice-9/boot-9.scm:1685:16: In procedure raise-exception:
In procedure append: Wrong type argument in position 1 (expecting empty list): #<<location> file: "…" line: 14 column: 12>

I should love to dive in & fix this rather than revert, but urgently
need sleep.
Diffstat (limited to 'gnu/home/services')
-rw-r--r--gnu/home/services/mcron.scm47
1 files changed, 11 insertions, 36 deletions
diff --git a/gnu/home/services/mcron.scm b/gnu/home/services/mcron.scm
index 1d294a997c..0b3dbb810b 100644
--- a/gnu/home/services/mcron.scm
+++ b/gnu/home/services/mcron.scm
@@ -1,7 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2021 Andrew Tropin <andrew@trop.in>
 ;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
-;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -21,7 +20,6 @@
 (define-module (gnu home services mcron)
   #:use-module (gnu packages guile-xyz)
   #:use-module (gnu home services)
-  #:use-module (gnu services configuration)
   #:use-module (gnu services shepherd)
   #:use-module (gnu home services shepherd)
   #:use-module (guix records)
@@ -55,23 +53,13 @@
 ;;
 ;;; Code:
 
-(define list-of-gexps?
-  (list-of gexp?))
-
-(define-configuration/no-serialization home-mcron-configuration
-  (mcron (file-like mcron) "The mcron package to use.")
-  (jobs
-   (list-of-gexps '())
-   "This is a list of gexps (@pxref{G-Expressions}), where each gexp
-corresponds to an mcron job specification (@pxref{Syntax, mcron job
-specifications,, mcron, GNU@tie{}mcron}).")
-  (log? (boolean #t) "Log messages to standard output.")
-  (log-format
-   (string "~1@*~a ~a: ~a~%")
-   "@code{(ice-9 format)} format string for log messages.  The default value
-produces messages like \"@samp{@var{pid} @var{name}:
-@var{message}\"} (@pxref{Invoking mcron, Invoking,, mcron, GNU@tie{}mcron}).
-Each message is also prefixed by a timestamp by GNU Shepherd."))
+(define-record-type* <home-mcron-configuration> home-mcron-configuration
+  make-home-mcron-configuration
+  home-mcron-configuration?
+  (package home-mcron-configuration-package ; package
+           (default mcron))
+  (jobs home-mcron-configuration-jobs   ; list of jobs
+        (default '())))
 
 (define job-files (@@ (gnu services mcron) job-files))
 (define shepherd-schedule-action
@@ -81,23 +69,19 @@ Each message is also prefixed by a timestamp by GNU Shepherd."))
   (match-lambda
     (($ <home-mcron-configuration> mcron '()) ; no jobs to run
      '())
-    (($ <home-mcron-configuration> mcron jobs  log? log-format)
+    (($ <home-mcron-configuration> mcron jobs)
      (let ((files (job-files mcron jobs)))
        (list (shepherd-service
               (documentation "User cron jobs.")
               (provision '(mcron))
               (modules `((srfi srfi-1)
                          (srfi srfi-26)
-                         (ice-9 popen)  ; for the 'schedule' action
+                         (ice-9 popen)            ; for the 'schedule' action
                          (ice-9 rdelim)
                          (ice-9 match)
                          ,@%default-modules))
               (start #~(make-forkexec-constructor
-                        (list (string-append #$mcron "/bin/mcron")
-                              #$@(if log?
-                                     #~("--log" "--log-format" #$log-format)
-                                     #~())
-                              #$@files)
+                        (list #$(file-append mcron "/bin/mcron") #$@files)
                         #:log-file (string-append
                                     (or (getenv "XDG_LOG_HOME")
                                         (format #f "~a/.local/var/log"
@@ -107,7 +91,7 @@ Each message is also prefixed by a timestamp by GNU Shepherd."))
               (actions
                (list (shepherd-schedule-action mcron files)))))))))
 
-(define home-mcron-profile (compose list home-mcron-configuration-mcron))
+(define home-mcron-profile (compose list home-mcron-configuration-package))
 
 (define (home-mcron-extend config jobs)
   (home-mcron-configuration
@@ -129,12 +113,3 @@ Each message is also prefixed by a timestamp by GNU Shepherd."))
                 (default-value (home-mcron-configuration))
                 (description
                  "Install and configure the GNU mcron cron job manager.")))
-
-
-;;;
-;;; Generate documentation.
-;;;
-(define (generate-doc)
-  (configuration->documentation 'home-mcron-configuration))
-
-;;; mcron.scm ends here