From 5e9c6362e4fc90cab5031e6c6b82bffa8fde6ca6 Mon Sep 17 00:00:00 2001 From: Tom Willemse Date: Fri, 14 Jan 2022 00:13:00 -0800 Subject: Add shepherd configuration with Emacs service --- shepherd/.config/shepherd/init.org | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 shepherd/.config/shepherd/init.org (limited to 'shepherd') diff --git a/shepherd/.config/shepherd/init.org b/shepherd/.config/shepherd/init.org new file mode 100644 index 0000000..05c9d6e --- /dev/null +++ b/shepherd/.config/shepherd/init.org @@ -0,0 +1,13 @@ +[[info:shepherd][The Shepherd manual]] suggests that you use a single =init.scm=, but as is pointed out by this article about [[https://guix.gnu.org/en/blog/2020/gnu-shepherd-user-services/][GNU Shepherd user services]] it might be better to have the services in separate files so you can restart them individually if you make any changes to them. So I just put a loading script into =init.scm= that goes through the =init.d= directory and loads each service defined in there. + +#+begin_src scheme +(use-modules (shepherd service) + ((ice-9 ftw) #:select (scandir))) + +(for-each + (λ (file) (load (string-append "init.d/" file))) + (scandir (string-append (dirname (current-filename)) "/init.d") + (λ (file) (string-suffix? ".scm" file)))) + +(action 'shepherd 'daemonize) +#+end_src -- cgit v1.2.3-54-g00ecf