diff options
Diffstat (limited to 'oni/home/services/mpd.scm')
-rw-r--r-- | oni/home/services/mpd.scm | 41 |
1 files changed, 40 insertions, 1 deletions
diff --git a/oni/home/services/mpd.scm b/oni/home/services/mpd.scm index 6719754..c64fef2 100644 --- a/oni/home/services/mpd.scm +++ b/oni/home/services/mpd.scm @@ -12,7 +12,10 @@ #:export (home-mpd-service-type home-mpd-configuration - <home-mpd-audio-output>)) + <home-mpd-audio-output> + + home-mpc-update-service-type + home-mpc-update-configuration)) (define (serialize-boolean field value) "") @@ -122,3 +125,39 @@ (compose identity) (default-value (home-mpd-configuration)) (description "Install and configure mpd."))) + +(define-configuration home-mpc-update-configuration + (package + (package mpd-mpc) + "Package to use for setting MPC update") + (auto-start? + (boolean #t) + "Should mpc update be started automatically")) + +(define (add-mpc-update-packages config) + (list (home-mpc-update-configuration-package config))) + +(define (home-mpc-update-shepherd-service config) + (list + (shepherd-service + (documentation "Update MPD database") + (provision '(mpd-update)) + (auto-start? (home-mpc-update-configuration-auto-start? config)) + (one-shot? #t) + (start + #~(make-forkexec-constructor + '(#$(file-append mpd-mpc "/bin/mpc") "update")))))) + +(define home-mpc-update-service-type + (service-type + (name 'home-mpc-update) + (extensions + (list (service-extension + home-profile-service-type + add-mpc-update-packages) + (service-extension + home-shepherd-service-type + home-mpc-update-shepherd-service))) + (compose identity) + (default-value (home-mpc-update-configuration)) + (description "Install and configure mpc update."))) |