diff options
author | Tobias Geerinckx-Rice <me@tobias.gr> | 2022-11-13 01:00:00 +0100 |
---|---|---|
committer | Tobias Geerinckx-Rice <me@tobias.gr> | 2022-11-13 01:00:00 +0100 |
commit | 39e4e00f75be8055300cb0afffb8bd4b4d35f2cc (patch) | |
tree | c75f25be3cf5fba52e03b79e9ec861427655abc9 /gnu/home | |
parent | 0ad036b0907dd080a745fe8dd209ffcc5b0389d3 (diff) |
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')
-rw-r--r-- | gnu/home/services/mcron.scm | 47 |
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 |