[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
08/09: services: mpd: Provision a default cache directory and set HOME.
From: |
guix-commits |
Subject: |
08/09: services: mpd: Provision a default cache directory and set HOME. |
Date: |
Wed, 26 Jul 2023 11:12:54 -0400 (EDT) |
apteryx pushed a commit to branch master
in repository guix.
commit 776317e7072979ee87246c8382e63395d7cbfe4b
Author: Maxim Cournoyer <maxim.cournoyer@gmail.com>
AuthorDate: Thu Apr 27 20:16:22 2023 -0400
services: mpd: Provision a default cache directory and set HOME.
Relates to <https://issues.guix.gnu.org/63082>.
* gnu/services/audio.scm (mpd-shepherd-service): Create a default .cache
directory. Use mkdir-p/perms and refactor loop. Set the HOME environment
variables.
---
doc/guix.texi | 3 ++-
gnu/services/audio.scm | 57 ++++++++++++++++++++++++++++++--------------------
2 files changed, 36 insertions(+), 24 deletions(-)
diff --git a/doc/guix.texi b/doc/guix.texi
index 67928d290d..31643bfacf 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -34311,7 +34311,8 @@ The directory to store playlists.
The directory to store playlists.
@item @code{db-file} (type: maybe-string)
-The location of the music database.
+The location of the music database. When left unspecified,
+@file{~/.cache/db} is used.
@item @code{state-file} (type: maybe-string)
The location of the file that stores current MPD's state.
diff --git a/gnu/services/audio.scm b/gnu/services/audio.scm
index 3083090ad0..f01357ad8b 100644
--- a/gnu/services/audio.scm
+++ b/gnu/services/audio.scm
@@ -472,7 +472,8 @@ The available values, in decreasing order of verbosity,
are: @code{verbose},
(db-file
maybe-string
- "The location of the music database.")
+ "The location of the music database. When left unspecified,
+@file{~/.cache/db} is used.")
(state-file
maybe-string
@@ -616,28 +617,38 @@ appended to the configuration.")
#~(begin
(use-modules (gnu build activation))
- (let ((user (getpw #$username)))
-
- (define (init-directory directory)
- (unless (file-exists? directory)
- (mkdir-p/perms directory user #o755)))
-
- (for-each
- init-directory
- '#$(map dirname
- ;; XXX: Delete the potential "syslog"
- ;; log-file value, which is not a directory.
- (delete "syslog"
- (filter-map maybe-value
- (list db-file
- log-file
- state-file
- sticker-file))))))
-
- (make-forkexec-constructor
- (list #$(file-append package "/bin/mpd") "--no-daemon"
- #$config-file)
- #:environment-variables '#$environment-variables))))
+ (let ((home #$(user-account-home-directory user)))
+ (let ((user (getpw #$username))
+ (default-cache-dir (string-append home "/.cache")))
+
+ (define (init-directory directory)
+ (unless (file-exists? directory)
+ (mkdir-p/perms directory user #o755)))
+
+ ;; Define a cache location that can be automatically used
+ ;; for the database file, in case it hasn't been explicitly
+ ;; specified.
+ (for-each
+ init-directory
+ (cons default-cache-dir
+ '#$(map dirname
+ ;; XXX: Delete the potential "syslog"
+ ;; log-file value, which is not a directory.
+ (delete "syslog"
+ (filter-map maybe-value
+ (list db-file
+ log-file
+ state-file
+ sticker-file)))))))
+
+ (make-forkexec-constructor
+ (list #$(file-append package "/bin/mpd") "--no-daemon"
+ #$config-file)
+ #:environment-variables
+ ;; Set HOME so MPD can infer default paths, such as
+ ;; for the database file.
+ (cons (string-append "HOME=" home)
+ '#$environment-variables))))))
(stop #~(make-kill-destructor))
(actions
(list (shepherd-configuration-action config-file)
- branch master updated (67cc7b1635 -> 53138a393b), guix-commits, 2023/07/26
- 04/09: services: mpd: Do not rotate logs when using syslog., guix-commits, 2023/07/26
- 05/09: services: Avoid 'delete' overrides warning in audio module., guix-commits, 2023/07/26
- 06/09: system: accounts: Export <user-account>., guix-commits, 2023/07/26
- 09/09: services: mpd: Update basic example., guix-commits, 2023/07/26
- 03/09: services: mpd: Log to syslog by default., guix-commits, 2023/07/26
- 01/09: services: mpd: List log-level in decreasing verbosity order in doc., guix-commits, 2023/07/26
- 08/09: services: mpd: Provision a default cache directory and set HOME.,
guix-commits <=
- 07/09: services: mpd: Auto-detect mpd-output mixer type by default., guix-commits, 2023/07/26
- 02/09: services: mpd; Refactor start slot directory initialization., guix-commits, 2023/07/26