musicutil/hm-module.nix

38 lines
770 B
Nix
Raw Normal View History

2022-02-22 14:02:58 +00:00
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.programs.musicutil;
yamlFormat = pkgs.formats.yaml { };
optionalPackage = opt:
optional (opt != null && opt.package != null) opt.package;
in {
options = {
programs.musicutil = {
enable = mkOption {
type = types.bool;
default = false;
};
package = mkOption {
type = types.nullOr types.package;
default = null;
};
settings = {
logLevel = mkOption {
type = types.str;
default = "info";
};
};
};
};
config = mkIf cfg.enable {
home.packages = optionalPackage cfg.package;
xdg.configFile."musicutil.yaml".source =
yamlFormat.generate "musicutil-config" cfg.settings;
};
}