guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

02/04: services: mpd: Add an 'update' action to trigger a database updat


From: guix-commits
Subject: 02/04: services: mpd: Add an 'update' action to trigger a database update.
Date: Tue, 25 Jul 2023 17:06:07 -0400 (EDT)

apteryx pushed a commit to branch master
in repository guix.

commit e1070ee16036f6dfb84c44aea4119e4db770356b
Author: Maxim Cournoyer <maxim.cournoyer@gmail.com>
AuthorDate: Tue Apr 25 17:28:21 2023 -0400

    services: mpd: Add an 'update' action to trigger a database update.
    
    * gnu/services/audio.scm (mpd-shepherd-service): Register a new update 
action.
    * doc/guix.texi (Audio Services): Document it.
---
 doc/guix.texi          | 10 ++++++++++
 gnu/services/audio.scm | 11 +++++++++++
 2 files changed, 21 insertions(+)

diff --git a/doc/guix.texi b/doc/guix.texi
index b5eca57d75..ea1e391a6f 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -34251,6 +34251,16 @@ The following example shows how one might run 
@code{mpd} as user
           (port "6666")))
 @end lisp
 
+Most MPD clients will trigger a database update upon connecting, but you
+can also use the @code{update} action do to so:
+
+@example
+herd update mpd
+@end example
+
+All the MPD configuration fields are documented below, and a more
+complex example follows.
+
 @defvar mpd-service-type
 The service type for @command{mpd}
 @end defvar
diff --git a/gnu/services/audio.scm b/gnu/services/audio.scm
index 8c061da47f..6e4ce3f9fb 100644
--- a/gnu/services/audio.scm
+++ b/gnu/services/audio.scm
@@ -620,6 +620,17 @@ appended to the configuration.")
                           (format #t
                                   "Issued SIGHUP to Service MPD (PID ~a)."
                                   pid))
+                        (format #t "Service MPD is not running.")))))
+              (shepherd-action
+               (name 'update)
+               (documentation "Request MPD to update its music database.")
+               (procedure
+                #~(lambda (pid)
+                    (if pid
+                        (begin
+                          (invoke #$(file-append mpd-mpc "/bin/mpc") "update")
+                          (format #t "Database update requested for service \
+MPD (PID ~a)." pid))
                         (format #t "Service MPD is not running.")))))))))))
 
 (define (mpd-accounts config)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]