services: mpd: Always create the "mpd" user account.
* gnu/services/audio.scm (%mpd-accounts): New variable. (mpd-service-type)[extensions]: Add ACCOUNT-SERVICE-TYPE extension.master
parent
db1b18c397
commit
7209d7cbc3
|
@ -1,6 +1,7 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com>
|
||||
;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2020 Ludovic Courtès <ludo@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -21,6 +22,8 @@
|
|||
#:use-module (guix gexp)
|
||||
#:use-module (gnu services)
|
||||
#:use-module (gnu services shepherd)
|
||||
#:use-module (gnu system shadow)
|
||||
#:use-module (gnu packages admin)
|
||||
#:use-module (gnu packages mpd)
|
||||
#:use-module (guix records)
|
||||
#:use-module (ice-9 match)
|
||||
|
@ -162,6 +165,22 @@ audio_output {
|
|||
(mkdir-p directory)
|
||||
(chown directory (passwd:uid %user) (passwd:gid %user))))))
|
||||
|
||||
|
||||
(define %mpd-accounts
|
||||
;; Default account and group for MPD.
|
||||
(list (user-group (name "mpd") (system? #t))
|
||||
(user-account
|
||||
(name "mpd")
|
||||
(group "mpd")
|
||||
(system? #t)
|
||||
(comment "Music Player Daemon (MPD) user")
|
||||
|
||||
;; Note: /var/run/mpd hosts one sub-directory per user, of which
|
||||
;; /var/run/mpd/mpd corresponds to the "mpd" user.
|
||||
(home-directory "/var/run/mpd/mpd")
|
||||
|
||||
(shell (file-append shadow "/sbin/nologin")))))
|
||||
|
||||
(define mpd-service-type
|
||||
(service-type
|
||||
(name 'mpd)
|
||||
|
@ -169,6 +188,8 @@ audio_output {
|
|||
(extensions
|
||||
(list (service-extension shepherd-root-service-type
|
||||
(compose list mpd-shepherd-service))
|
||||
(service-extension account-service-type
|
||||
(const %mpd-accounts))
|
||||
(service-extension activation-service-type
|
||||
mpd-service-activation)))
|
||||
(default-value (mpd-configuration))))
|
||||
|
|
Reference in New Issue