mirror of
https://github.com/nix-community/home-manager
synced 2024-11-26 21:19:45 +01:00
mpd: specify dependency of service on socket
This allows `systemctl --user restart mpd.socket` to work properly.
This commit is contained in:
parent
58268b4d77
commit
0a30138c69
5 changed files with 61 additions and 4 deletions
|
@ -171,10 +171,17 @@ in {
|
||||||
];
|
];
|
||||||
|
|
||||||
systemd.user.services.mpd = {
|
systemd.user.services.mpd = {
|
||||||
Unit = {
|
Unit = mkMerge [
|
||||||
After = [ "network.target" "sound.target" ];
|
{
|
||||||
Description = "Music Player Daemon";
|
Description = "Music Player Daemon";
|
||||||
};
|
After = [ "network.target" "sound.target" ];
|
||||||
|
}
|
||||||
|
|
||||||
|
(mkIf cfg.network.startWhenNeeded {
|
||||||
|
Requires = [ "mpd.socket" ];
|
||||||
|
After = [ "mpd.socket" ];
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
Install = mkIf (!cfg.network.startWhenNeeded) {
|
Install = mkIf (!cfg.network.startWhenNeeded) {
|
||||||
WantedBy = [ "default.target" ];
|
WantedBy = [ "default.target" ];
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
{
|
{
|
||||||
mpd-basic-configuration = ./basic-configuration.nix;
|
mpd-basic-configuration = ./basic-configuration.nix;
|
||||||
mpd-before-state-version-22_11 = ./before-state-version-22_11.nix;
|
mpd-before-state-version-22_11 = ./before-state-version-22_11.nix;
|
||||||
|
mpd-start-when-needed = ./start-when-needed.nix;
|
||||||
mpd-xdg-music-dir = ./xdg-music-dir.nix;
|
mpd-xdg-music-dir = ./xdg-music-dir.nix;
|
||||||
}
|
}
|
||||||
|
|
29
tests/modules/services/mpd/start-when-needed.nix
Normal file
29
tests/modules/services/mpd/start-when-needed.nix
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
{
|
||||||
|
services.mpd = {
|
||||||
|
enable = true;
|
||||||
|
musicDirectory = "/my/music/dir";
|
||||||
|
extraArgs = [ "--verbose" ];
|
||||||
|
network.startWhenNeeded = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
home.stateVersion = "22.11";
|
||||||
|
|
||||||
|
test.stubs.mpd = { };
|
||||||
|
|
||||||
|
nmt.script = ''
|
||||||
|
serviceFile=$(normalizeStorePaths home-files/.config/systemd/user/mpd.service)
|
||||||
|
assertFileContent "$serviceFile" ${./start-when-needed.service}
|
||||||
|
|
||||||
|
socketFile=home-files/.config/systemd/user/mpd.socket
|
||||||
|
assertFileContent "$socketFile" ${./start-when-needed.socket}
|
||||||
|
|
||||||
|
confFile=$(grep -o \
|
||||||
|
'/nix/store/.*-mpd.conf' \
|
||||||
|
$TESTED/home-files/.config/systemd/user/mpd.service)
|
||||||
|
assertFileContent "$confFile" ${./basic-configuration.conf}
|
||||||
|
'';
|
||||||
|
}
|
12
tests/modules/services/mpd/start-when-needed.service
Normal file
12
tests/modules/services/mpd/start-when-needed.service
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
[Service]
|
||||||
|
Environment=PATH=/home/hm-user/.nix-profile/bin
|
||||||
|
ExecStart=@mpd@/bin/mpd --no-daemon /nix/store/00000000000000000000000000000000-mpd.conf '--verbose'
|
||||||
|
ExecStartPre=/nix/store/00000000000000000000000000000000-bash/bin/bash -c "/nix/store/00000000000000000000000000000000-coreutils/bin/mkdir -p '/home/hm-user/.local/share/mpd' '/home/hm-user/.local/share/mpd/playlists'"
|
||||||
|
Type=notify
|
||||||
|
|
||||||
|
[Unit]
|
||||||
|
After=network.target
|
||||||
|
After=sound.target
|
||||||
|
After=mpd.socket
|
||||||
|
Description=Music Player Daemon
|
||||||
|
Requires=mpd.socket
|
8
tests/modules/services/mpd/start-when-needed.socket
Normal file
8
tests/modules/services/mpd/start-when-needed.socket
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
[Install]
|
||||||
|
WantedBy=sockets.target
|
||||||
|
|
||||||
|
[Socket]
|
||||||
|
Backlog=5
|
||||||
|
KeepAlive=true
|
||||||
|
ListenStream=127.0.0.1:6600
|
||||||
|
ListenStream=%t/mpd/socket
|
Loading…
Reference in a new issue