unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
From: Oleg Pykhalov <go.wigust@gmail.com>
To: 50967@debbugs.gnu.org
Cc: Oleg Pykhalov <go.wigust@gmail.com>
Subject: [bug#50967] [PATCH 09/12] gnu: home-services: Move mcron to (gnu services).
Date: Sat,  2 Oct 2021 16:46:00 +0300	[thread overview]
Message-ID: <20211002134603.6229-9-go.wigust@gmail.com> (raw)
In-Reply-To: <20211002134603.6229-1-go.wigust@gmail.com>

* gnu/home-services/mcron.scm: Move content without delete job-files and
shepherd-schedule-action ...
* gnu/services/mcron.scm: ... here.
* gnu/local.mk: Delete gnu/home-services/mcron.scm.
* doc/guix.texi: Replace (gnu home-services mcron) with (gnu services mcron).
---
 doc/guix.texi               |   2 +-
 gnu/home-services/mcron.scm | 115 ------------------------------------
 gnu/local.mk                |   1 -
 gnu/services/mcron.scm      |  89 +++++++++++++++++++++++++++-
 4 files changed, 89 insertions(+), 118 deletions(-)
 delete mode 100644 gnu/home-services/mcron.scm

diff --git a/doc/guix.texi b/doc/guix.texi
index a72a726b54..d06590ab8c 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -35810,7 +35810,7 @@ for example).
 @cindex mcron
 @cindex scheduling jobs
 
-The @code{(gnu home-services mcron)} module provides an interface to
+The @code{(gnu services mcron)} module provides an interface to
 GNU@tie{}mcron, a daemon to run jobs at scheduled times (@pxref{Top,,,
 mcron, GNU@tie{}mcron}).  The information about system's mcron is
 applicable here (@pxref{Scheduled Job Execution}), the only difference
diff --git a/gnu/home-services/mcron.scm b/gnu/home-services/mcron.scm
deleted file mode 100644
index a4e09f509c..0000000000
--- a/gnu/home-services/mcron.scm
+++ /dev/null
@@ -1,115 +0,0 @@
-;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2021 Andrew Tropin <andrew@trop.in>
-;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
-;;;
-;;; This file is part of GNU Guix.
-;;;
-;;; GNU Guix is free software; you can redistribute it and/or modify it
-;;; under the terms of the GNU General Public License as published by
-;;; the Free Software Foundation; either version 3 of the License, or (at
-;;; your option) any later version.
-;;;
-;;; GNU Guix is distributed in the hope that it will be useful, but
-;;; WITHOUT ANY WARRANTY; without even the implied warranty of
-;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-;;; GNU General Public License for more details.
-;;;
-;;; You should have received a copy of the GNU General Public License
-;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
-
-(define-module (gnu home-services mcron)
-  #:use-module (gnu packages guile-xyz)
-  #:use-module (gnu home-services)
-  #:use-module (gnu services shepherd)
-  #:use-module (gnu services shepherd)
-  #:use-module (guix records)
-  #:use-module (guix gexp)
-  #:use-module (srfi srfi-1)
-  #:use-module (ice-9 match)
-
-  #:export (home-mcron-configuration
-            home-mcron-service-type))
-
-;;; Commentary:
-;;
-;; Service for the GNU mcron cron job manager.
-;;
-;; Example configuration, the first job runs mbsync once every ten
-;; minutes, the second one writes "Mcron service" to ~/mcron-file once
-;; every minute.
-;;
-;; (service home-mcron-service-type
-;;            (home-mcron-configuration
-;;             (jobs (list #~(job '(next-minute
-;;                                  (range 0 60 10))
-;;                                (lambda ()
-;;                                  (system* "mbsync" "--all")))
-;;                         #~(job next-minute-from
-;;                                (lambda ()
-;;                                  (call-with-output-file (string-append (getenv "HOME")
-;;                                                                        "/mcron-file")
-;;                                    (lambda (port)
-;;                                      (display "Mcron service" port)))))))))
-;;
-;;; Code:
-
-(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
-  (@@ (gnu services mcron) shepherd-schedule-action))
-
-(define home-mcron-shepherd-services
-  (match-lambda
-    (($ <home-mcron-configuration> mcron '()) ; no jobs to run
-     '())
-    (($ <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 rdelim)
-                         (ice-9 match)
-                         ,@%default-modules))
-              (start #~(make-forkexec-constructor
-                        (list #$(file-append mcron "/bin/mcron") #$@files)
-                        #:log-file (string-append
-                                    (or (getenv "XDG_LOG_HOME")
-                                        (format #f "~a/.local/var/log"
-                                                (getenv "HOME")))
-                                    "/mcron.log")))
-              (stop #~(make-kill-destructor))
-              (actions
-               (list (shepherd-schedule-action mcron files)))))))))
-
-(define home-mcron-profile (compose list home-mcron-configuration-package))
-
-(define (home-mcron-extend config jobs)
-  (home-mcron-configuration
-   (inherit config)
-   (jobs (append (home-mcron-configuration-jobs config)
-                 jobs))))
-
-(define home-mcron-service-type
-  (service-type (name 'home-mcron)
-                (extensions
-                 (list (service-extension
-                        home-shepherd-service-type
-                        home-mcron-shepherd-services)
-                       (service-extension
-                        home-profile-service-type
-                        home-mcron-profile)))
-                (compose concatenate)
-                (extend home-mcron-extend)
-                (default-value (home-mcron-configuration))
-                (description
-                 "Install and configure the GNU mcron cron job manager.")))
diff --git a/gnu/local.mk b/gnu/local.mk
index fb60e6492e..ca4c15ba25 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -75,7 +75,6 @@ GNU_SYSTEM_MODULES =				\
   %D%/ci.scm					\
   %D%/home.scm					\
   %D%/home-services.scm			\
-  %D%/home-services/mcron.scm			\
   %D%/image.scm					\
   %D%/packages.scm				\
   %D%/packages/abduco.scm			\
diff --git a/gnu/services/mcron.scm b/gnu/services/mcron.scm
index 0e675607f3..79639caee4 100644
--- a/gnu/services/mcron.scm
+++ b/gnu/services/mcron.scm
@@ -1,5 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2021 Andrew Tropin <andrew@trop.in>
+;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -19,6 +21,7 @@
 (define-module (gnu services mcron)
   #:use-module (gnu services)
   #:use-module (gnu services shepherd)
+  #:use-module (gnu home-services)
   #:use-module (gnu packages guile-xyz)
   #:use-module (guix deprecation)
   #:use-module (guix records)
@@ -31,7 +34,10 @@
             mcron-configuration-mcron
             mcron-configuration-jobs
 
-            mcron-service-type))
+            mcron-service-type
+
+            home-mcron-configuration
+            home-mcron-service-type))
 
 ;;; Commentary:
 ;;;
@@ -172,4 +178,85 @@ files."
                                          jobs)))))
                 (default-value (mcron-configuration)))) ;empty job list
 
+\f
+;;;
+;;; Home services
+;;;
+
+;; Service for the GNU mcron cron job manager.
+;;
+;; Example configuration, the first job runs mbsync once every ten
+;; minutes, the second one writes "Mcron service" to ~/mcron-file once
+;; every minute.
+;;
+;; (service home-mcron-service-type
+;;            (home-mcron-configuration
+;;             (jobs (list #~(job '(next-minute
+;;                                  (range 0 60 10))
+;;                                (lambda ()
+;;                                  (system* "mbsync" "--all")))
+;;                         #~(job next-minute-from
+;;                                (lambda ()
+;;                                  (call-with-output-file (string-append (getenv "HOME")
+;;                                                                        "/mcron-file")
+;;                                    (lambda (port)
+;;                                      (display "Mcron service" port)))))))))
+
+(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 home-mcron-shepherd-services
+  (match-lambda
+    (($ <home-mcron-configuration> mcron '()) ; no jobs to run
+     '())
+    (($ <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 rdelim)
+                         (ice-9 match)
+                         ,@%default-modules))
+              (start #~(make-forkexec-constructor
+                        (list #$(file-append mcron "/bin/mcron") #$@files)
+                        #:log-file (string-append
+                                    (or (getenv "XDG_LOG_HOME")
+                                        (format #f "~a/.local/var/log"
+                                                (getenv "HOME")))
+                                    "/mcron.log")))
+              (stop #~(make-kill-destructor))
+              (actions
+               (list (shepherd-schedule-action mcron files)))))))))
+
+(define home-mcron-profile (compose list home-mcron-configuration-package))
+
+(define (home-mcron-extend config jobs)
+  (home-mcron-configuration
+   (inherit config)
+   (jobs (append (home-mcron-configuration-jobs config)
+                 jobs))))
+
+(define home-mcron-service-type
+  (service-type (name 'home-mcron)
+                (extensions
+                 (list (service-extension
+                        home-shepherd-service-type
+                        home-mcron-shepherd-services)
+                       (service-extension
+                        home-profile-service-type
+                        home-mcron-profile)))
+                (compose concatenate)
+                (extend home-mcron-extend)
+                (default-value (home-mcron-configuration))
+                (description
+                 "Install and configure the GNU mcron cron job manager.")))
+
 ;;; mcron.scm ends here
-- 
2.33.0





  parent reply	other threads:[~2021-10-02 13:48 UTC|newest]

Thread overview: 64+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-02 13:43 [bug#50967] [PATCH 00/12] Move (gnu home-services XYZ) to (gnu services XYZ) Oleg Pykhalov
2021-10-02 13:45 ` [bug#50967] [PATCH 01/12] tests: Add tests for guix home cli Oleg Pykhalov
2021-10-02 13:45   ` [bug#50967] [PATCH 02/12] gnu: home-services: Move configuration to (gnu services) Oleg Pykhalov
2021-10-02 13:45   ` [bug#50967] [PATCH 03/12] gnu: home-services: Move symlink-manager " Oleg Pykhalov
2021-10-02 13:45   ` [bug#50967] [PATCH 04/12] gnu: home-services: Move utils " Oleg Pykhalov
2021-10-02 13:45   ` [bug#50967] [PATCH 05/12] gnu: home-services: Move fontutils " Oleg Pykhalov
2021-10-02 13:45   ` [bug#50967] [PATCH 06/12] gnu: home-services: Move shells " Oleg Pykhalov
2021-10-02 13:45   ` [bug#50967] [PATCH 07/12] gnu: home-services: Move xdg " Oleg Pykhalov
2021-10-02 13:45   ` [bug#50967] [PATCH 08/12] gnu: home-services: Move shepherd " Oleg Pykhalov
2021-10-02 13:46   ` Oleg Pykhalov [this message]
2021-10-02 13:46   ` [bug#50967] [PATCH 10/12] gnu: home-services: Change %service-type-path and filter services Oleg Pykhalov
2021-10-02 13:46   ` [bug#50967] [PATCH 11/12] scripts: home: (gnu home-services bash) -> (gnu services bash) Oleg Pykhalov
2021-10-02 13:46   ` [bug#50967] [PATCH 12/12] doc: (gnu home-services) -> (gnu services) Oleg Pykhalov
2021-10-02 16:38 ` [bug#50967] [PATCH 01/14] tests: Add tests for guix home cli Oleg Pykhalov
2021-10-02 16:38   ` [bug#50967] [PATCH 02/14] gnu: home-services: Move configuration to (gnu home services) Oleg Pykhalov
2021-10-02 18:37     ` Xinglu Chen
2021-10-02 16:38   ` [bug#50967] [PATCH 03/14] gnu: home-services: Move symlink-manager " Oleg Pykhalov
2021-10-02 16:38   ` [bug#50967] [PATCH 04/14] gnu: home-services: Move utils " Oleg Pykhalov
2021-10-02 16:38   ` [bug#50967] [PATCH 05/14] gnu: home-services: Move fontutils to (gnu services) Oleg Pykhalov
2021-10-02 16:38   ` [bug#50967] [PATCH 06/14] gnu: home-services: Move shells to (gnu home services) Oleg Pykhalov
2021-10-02 16:38   ` [bug#50967] [PATCH 07/14] gnu: home-services: Move xdg " Oleg Pykhalov
2021-10-02 16:38   ` [bug#50967] [PATCH 08/14] gnu: home-services: Move shepherd " Oleg Pykhalov
2021-10-02 16:38   ` [bug#50967] [PATCH 09/14] gnu: home-services: Move mcron " Oleg Pykhalov
2021-10-02 16:38   ` [bug#50967] [PATCH 10/14] scripts: home: (gnu home-services bash) -> (gnu home services bash) Oleg Pykhalov
2021-10-02 16:38   ` [bug#50967] [PATCH 11/14] doc: (gnu home-services) -> (gnu home services) Oleg Pykhalov
2021-10-02 16:38   ` [bug#50967] [PATCH 12/14] gnu: home-services: Update %service-type-path Oleg Pykhalov
2021-10-04 14:01     ` [bug#50967] [PATCH 00/12] Move (gnu home-services XYZ) to (gnu services XYZ) Ludovic Courtès
2021-10-02 16:38   ` [bug#50967] [PATCH 13/14] home: services: configuration: Support file-like objects Oleg Pykhalov
2021-10-02 18:35     ` Xinglu Chen
2021-10-04 14:04       ` [bug#50967] [PATCH 00/12] Move (gnu home-services XYZ) to (gnu services XYZ) Ludovic Courtès
2021-10-06  8:15         ` [bug#50967] file-like objects instead of gexps Andrew Tropin
2021-10-08  7:56           ` Ludovic Courtès
2021-10-08 10:00             ` Andrew Tropin
2021-10-09 13:34               ` Ludovic Courtès
2021-10-14  8:32                 ` Andrew Tropin
2021-10-08 13:45           ` Xinglu Chen
2021-10-08 14:34             ` Andrew Tropin
2021-10-08 10:06     ` [bug#50967] [PATCH 13/14] home: services: configuration: Support file-like objects Andrew Tropin
2021-10-14  7:08     ` Andrew Tropin
2021-10-02 16:38   ` [bug#50967] [PATCH 14/14] doc: Document guix home import Oleg Pykhalov
2021-10-02 18:42     ` Xinglu Chen
2021-10-02 19:45       ` Oleg Pykhalov
2021-10-04 13:58   ` [bug#50967] [PATCH 00/12] Move (gnu home-services XYZ) to (gnu services XYZ) Ludovic Courtès
2021-10-04 23:13     ` [bug#50967] [PATCH 1/3] gnu: Move (gnu home-services) to (gnu home services) Oleg Pykhalov
2021-10-04 23:13       ` [bug#50967] [PATCH 2/3] home: services: configuration: Support file-like objects Oleg Pykhalov
2021-10-04 23:13       ` [bug#50967] [PATCH 3/3] guix: scripts: Make sure profile directory exists Oleg Pykhalov
2021-10-05 10:20         ` Oleg Pykhalov
2021-10-06 21:22           ` [bug#50967] [PATCH 00/12] Move (gnu home-services XYZ) to (gnu services XYZ) Ludovic Courtès
2021-10-06 22:05         ` [bug#50967] [PATCH 3/3] guix: scripts: Make sure profile directory exists Oleg Pykhalov
2021-10-06 22:15           ` [bug#50967] [PATCH 00/12] Move (gnu home-services XYZ) to (gnu services XYZ) Oleg Pykhalov
2021-10-07  6:37             ` Maxime Devos
2021-10-07  9:56               ` Oleg Pykhalov
2021-10-07 16:43                 ` Maxime Devos
2021-10-08 22:44               ` Ludovic Courtès
2021-10-08 22:57           ` Ludovic Courtès
2021-10-09 12:34             ` Oleg Pykhalov
2021-10-09 12:45               ` Oleg Pykhalov
2021-10-09 14:34               ` Ludovic Courtès
2021-10-09 19:39                 ` bug#50967: " Oleg Pykhalov
2021-10-08 12:44       ` [bug#50967] " Oleg Pykhalov
2021-10-08 14:27         ` Andrew Tropin
2021-10-08 22:46           ` Ludovic Courtès
2021-10-08 22:49       ` Ludovic Courtès
2021-10-02 20:13 ` [bug#50967] [PATCH] home: services: configuration: Move and refactor content Oleg Pykhalov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20211002134603.6229-9-go.wigust@gmail.com \
    --to=go.wigust@gmail.com \
    --cc=50967@debbugs.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).