diff --git a/modules/services/mpd.nix b/modules/services/mpd.nix index 6ba93a19..3d3ce1b9 100644 --- a/modules/services/mpd.nix +++ b/modules/services/mpd.nix @@ -92,6 +92,15 @@ in { ''; }; + extraArgs = mkOption { + type = types.listOf types.str; + default = [ ]; + example = [ "--verbose" ]; + description = '' + Extra command-line arguments to pass to MPD. + ''; + }; + dataDir = mkOption { type = types.path; default = "${config.xdg.dataHome}/${name}"; @@ -176,7 +185,9 @@ in { Service = { Environment = "PATH=${config.home.profileDirectory}/bin"; - ExecStart = "${cfg.package}/bin/mpd --no-daemon ${mpdConf}"; + ExecStart = "${cfg.package}/bin/mpd --no-daemon ${mpdConf} ${ + escapeShellArgs cfg.extraArgs + }"; Type = "notify"; ExecStartPre = '' ${pkgs.bash}/bin/bash -c "${pkgs.coreutils}/bin/mkdir -p '${cfg.dataDir}' '${cfg.playlistDirectory}'"''; diff --git a/tests/modules/services/mpd/basic-configuration.nix b/tests/modules/services/mpd/basic-configuration.nix index 6d6250d9..6ae0e91f 100644 --- a/tests/modules/services/mpd/basic-configuration.nix +++ b/tests/modules/services/mpd/basic-configuration.nix @@ -6,6 +6,7 @@ with lib; services.mpd = { enable = true; musicDirectory = "/my/music/dir"; + extraArgs = [ "--verbose" ]; }; home.stateVersion = "22.11"; diff --git a/tests/modules/services/mpd/basic-configuration.service b/tests/modules/services/mpd/basic-configuration.service index fd44042a..678d16d7 100644 --- a/tests/modules/services/mpd/basic-configuration.service +++ b/tests/modules/services/mpd/basic-configuration.service @@ -3,7 +3,7 @@ WantedBy=default.target [Service] Environment=PATH=/home/hm-user/.nix-profile/bin -ExecStart=@mpd@/bin/mpd --no-daemon /nix/store/00000000000000000000000000000000-mpd.conf +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 diff --git a/tests/modules/services/mpd/before-state-version-22_11.nix b/tests/modules/services/mpd/before-state-version-22_11.nix index 6e044b36..f29859ac 100644 --- a/tests/modules/services/mpd/before-state-version-22_11.nix +++ b/tests/modules/services/mpd/before-state-version-22_11.nix @@ -3,7 +3,10 @@ with lib; { - services.mpd.enable = true; + services.mpd = { + enable = true; + extraArgs = [ "--verbose" ]; + }; home.stateVersion = "18.09"; diff --git a/tests/modules/services/mpd/xdg-music-dir.nix b/tests/modules/services/mpd/xdg-music-dir.nix index 775043c1..6df2cec4 100644 --- a/tests/modules/services/mpd/xdg-music-dir.nix +++ b/tests/modules/services/mpd/xdg-music-dir.nix @@ -3,7 +3,11 @@ with lib; { - services.mpd.enable = true; + services.mpd = { + enable = true; + extraArgs = [ "--verbose" ]; + }; + xdg.userDirs.enable = true; home.stateVersion = "22.11";