Skip to content

Commit

Permalink
ncmpcpp: Allow str type values for mpdMusicDir option
Browse files Browse the repository at this point in the history
The default value of `programs.ncmpcpp.mpdMusicDir` is taken from
`services.mpd.musicDirectory` if the mpd module is enabled, which has
type `either path str`. `programs.ncmpcpp.mpdMusicDir` did not accept
`str` values, though, so an error was raised when the default value was
used and `services.mpd.musicDirectory` was set to a value of type `str`.

This commit changes the type of `programs.ncmpcpp.mpdMusicDir` to also
accept `str` to reflect the type of `services.mpd.musicDirectory`.

Fixes nix-community#3560
  • Loading branch information
olmokramer committed Jan 4, 2023
1 parent 54245e1 commit b1e7cdd
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 3 deletions.
4 changes: 2 additions & 2 deletions modules/programs/ncmpcpp.nix
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ in {
};

mpdMusicDir = mkOption {
type = types.nullOr types.path;
type = with types; nullOr (coercedTo path toString str);
default = let mpdCfg = config.services.mpd;
in if pkgs.stdenv.hostPlatform.isLinux && mpdCfg.enable then
mpdCfg.musicDirectory
Expand Down Expand Up @@ -123,7 +123,7 @@ in {
xdg.configFile = {
"ncmpcpp/config" = let
settings = cfg.settings // optionalAttrs (cfg.mpdMusicDir != null) {
mpd_music_dir = toString cfg.mpdMusicDir;
mpd_music_dir = cfg.mpdMusicDir;
};
in mkIf (settings != { }) { text = renderSettings settings + "\n"; };

Expand Down
5 changes: 4 additions & 1 deletion tests/modules/programs/ncmpcpp-linux/default.nix
Original file line number Diff line number Diff line change
@@ -1 +1,4 @@
{ ncmpcpp-use-mpd-config = ./ncmpcpp-use-mpd-config.nix; }
{
ncmpcpp-use-mpd-config = ./ncmpcpp-use-mpd-config.nix;
ncmpcpp-issue-3560 = ./ncmpcpp-issue-3560.nix;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
mpd_music_dir=~/music
25 changes: 25 additions & 0 deletions tests/modules/programs/ncmpcpp-linux/ncmpcpp-issue-3560.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{ pkgs, ... }:

{
config = {
# Minimal config reproducing
# https://github.com/nix-community/home-manager/issues/3560
programs.ncmpcpp.enable = true;

services.mpd.enable = true;
services.mpd.musicDirectory = "~/music";

test.stubs = {
ncmpcpp = { };
mpd = { };
};

nmt.script = ''
assertFileContent \
home-files/.config/ncmpcpp/config \
${./ncmpcpp-issue-3560-expected-config}
assertPathNotExists home-files/.config/ncmpcpp/bindings
'';
};
}

0 comments on commit b1e7cdd

Please sign in to comment.