[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#63082: [PATCH 01/17] services: mpd: Add an 'update' action to trigge
From: |
Maxim Cournoyer |
Subject: |
bug#63082: [PATCH 01/17] services: mpd: Add an 'update' action to trigger a database update. |
Date: |
Fri, 28 Apr 2023 10:26:54 -0400 |
* 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 bdacb56af5..f8acdbd6b5 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -33546,6 +33546,16 @@ Audio Services
(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 @@ (define (mpd-shepherd-service config)
(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)
--
2.39.2