~ruther/guix-local

5cfbf7b513bdc9fb07c4e4a34d495934b6a486ad — Ludovic Courtès 1 year, 1 month ago dc0df5e
home: services: shepherd: Add ‘transient’ and ‘timer’ services.

* gnu/home/services/shepherd.scm (home-shepherd-timer-service-type)
(home-shepherd-transient-service-type): New variables.
* doc/guix.texi (Shepherd Home Service): Document them.
(Shepherd Services): Add anchor.

Reviewed-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Change-Id: Ia4eb7cf043f4661c64f5ca81b8989a451532aa18
2 files changed, 31 insertions(+), 2 deletions(-)

M doc/guix.texi
M gnu/home/services/shepherd.scm
M doc/guix.texi => doc/guix.texi +12 -0
@@ 45702,6 45702,7 @@ system:
                                            (shepherd my-shepherd))))))
@end lisp

@anchor{shepherd-transient-timer-services}
@cindex @code{transient} service, Shepherd
@defvar shepherd-transient-service-type
This service type represents the Shepherd's @code{transient} service,


@@ 47366,6 47367,17 @@ its reference.
This service is part of @code{%base-home-services}.
@end defvar

@defvar home-shepherd-transient-service-type
@defvarx home-shepherd-timer-service-type
These are the @code{timer} and @code{transient} Shepherd services.  The
former lets you schedule command execution for later, while the latter
can run commands in the background as a regular service.

@xref{shepherd-transient-timer-services, the system @code{timer} and
@code{transient} services}, which are their Guix System counterparts,
for more info.
@end defvar

@node Secure Shell
@subsection Secure Shell


M gnu/home/services/shepherd.scm => gnu/home/services/shepherd.scm +19 -2
@@ 1,7 1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2021, 2023 Andrew Tropin <andrew@trop.in>
;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
;;; Copyright © 2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2024-2025 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;


@@ 34,7 34,10 @@
            home-shepherd-configuration-auto-start?
            home-shepherd-configuration-daemonize?
            home-shepherd-configuration-silent?
            home-shepherd-configuration-services)
            home-shepherd-configuration-services

            home-shepherd-transient-service-type
            home-shepherd-timer-service-type)
  #:re-export (shepherd-service
               shepherd-service?
               shepherd-service-documentation


@@ 181,3 184,17 @@ as shepherd package."
(define-service-type-mapping
  shepherd-root-service-type => home-shepherd-service-type)


;;;
;;; Timer and transient service maker.
;;;

(define home-shepherd-timer-service-type
  (service-type
   (inherit (system->home-service-type shepherd-timer-service-type))
   (default-value '())))                          ;requirement

(define home-shepherd-transient-service-type
  (service-type
   (inherit (system->home-service-type shepherd-transient-service-type))
   (default-value '())))                          ;requirement