summaryrefslogtreecommitdiffstats
path: root/nixos/modules
diff options
context:
space:
mode:
authorPeter Hoeg <peter@hoeg.com>2021-02-10 10:30:38 +0800
committerPeter Hoeg <peter@hoeg.com>2022-03-13 21:08:52 +0800
commitd853dc52d87692619412a074846144262d6a48b3 (patch)
tree0bc6537e9e2cf6821f338aa828d9b9cd98c8c816 /nixos/modules
parent158211b6a1b78966a8291eaad9c48f6ddec43b68 (diff)
nixos/squeezelite: add support for PulseAudio version
Diffstat (limited to 'nixos/modules')
-rw-r--r--nixos/modules/services/audio/squeezelite.nix38
1 files changed, 17 insertions, 21 deletions
diff --git a/nixos/modules/services/audio/squeezelite.nix b/nixos/modules/services/audio/squeezelite.nix
index 05506f5bcc7a..36295e21c60f 100644
--- a/nixos/modules/services/audio/squeezelite.nix
+++ b/nixos/modules/services/audio/squeezelite.nix
@@ -1,50 +1,46 @@
{ config, lib, pkgs, ... }:
-with lib;
-
let
+ inherit (lib) mkEnableOption mkIf mkOption optionalString types;
+
dataDir = "/var/lib/squeezelite";
cfg = config.services.squeezelite;
+ pkg = if cfg.pulseAudio then pkgs.squeezelite-pulse else pkgs.squeezelite;
+ bin = "${pkg}/bin/${pkg.pname}";
-in {
+in
+{
###### interface
- options = {
-
- services.squeezelite= {
+ options.services.squeezelite = {
+ enable = mkEnableOption "Squeezelite, a software Squeezebox emulator";
- enable = mkEnableOption "Squeezelite, a software Squeezebox emulator";
-
- extraArguments = mkOption {
- default = "";
- type = types.str;
- description = ''
- Additional command line arguments to pass to Squeezelite.
- '';
- };
+ pulseAudio = mkEnableOption "pulseaudio support";
+ extraArguments = mkOption {
+ default = "";
+ type = types.str;
+ description = ''
+ Additional command line arguments to pass to Squeezelite.
+ '';
};
-
};
###### implementation
config = mkIf cfg.enable {
-
- systemd.services.squeezelite= {
+ systemd.services.squeezelite = {
wantedBy = [ "multi-user.target" ];
after = [ "network.target" "sound.target" ];
description = "Software Squeezebox emulator";
serviceConfig = {
DynamicUser = true;
- ExecStart = "${pkgs.squeezelite}/bin/squeezelite -N ${dataDir}/player-name ${cfg.extraArguments}";
+ ExecStart = "${bin} -N ${dataDir}/player-name ${cfg.extraArguments}";
StateDirectory = builtins.baseNameOf dataDir;
SupplementaryGroups = "audio";
};
};
-
};
-
}