mirror of
https://github.com/nix-community/home-manager
synced 2024-11-30 06:59:45 +01:00
ncmpcpp: Allow str
type values for mpdMusicDir
option (#3565)
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 #3560
This commit is contained in:
parent
709a87fe33
commit
2cff1c7642
4 changed files with 32 additions and 3 deletions
|
@ -62,7 +62,7 @@ in {
|
||||||
};
|
};
|
||||||
|
|
||||||
mpdMusicDir = mkOption {
|
mpdMusicDir = mkOption {
|
||||||
type = types.nullOr types.path;
|
type = with types; nullOr (coercedTo path toString str);
|
||||||
default = let mpdCfg = config.services.mpd;
|
default = let mpdCfg = config.services.mpd;
|
||||||
in if pkgs.stdenv.hostPlatform.isLinux && mpdCfg.enable then
|
in if pkgs.stdenv.hostPlatform.isLinux && mpdCfg.enable then
|
||||||
mpdCfg.musicDirectory
|
mpdCfg.musicDirectory
|
||||||
|
@ -123,7 +123,7 @@ in {
|
||||||
xdg.configFile = {
|
xdg.configFile = {
|
||||||
"ncmpcpp/config" = let
|
"ncmpcpp/config" = let
|
||||||
settings = cfg.settings // optionalAttrs (cfg.mpdMusicDir != null) {
|
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"; };
|
in mkIf (settings != { }) { text = renderSettings settings + "\n"; };
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
mpd_music_dir=~/music
|
25
tests/modules/programs/ncmpcpp-linux/ncmpcpp-issue-3560.nix
Normal file
25
tests/modules/programs/ncmpcpp-linux/ncmpcpp-issue-3560.nix
Normal file
|
@ -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
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in a new issue