summary refs log tree commit diff
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
parent158211b6a1b78966a8291eaad9c48f6ddec43b68 (diff)
downloadnixpkgs-d853dc52d87692619412a074846144262d6a48b3.tar
nixpkgs-d853dc52d87692619412a074846144262d6a48b3.tar.gz
nixpkgs-d853dc52d87692619412a074846144262d6a48b3.tar.bz2
nixpkgs-d853dc52d87692619412a074846144262d6a48b3.tar.lz
nixpkgs-d853dc52d87692619412a074846144262d6a48b3.tar.xz
nixpkgs-d853dc52d87692619412a074846144262d6a48b3.tar.zst
nixpkgs-d853dc52d87692619412a074846144262d6a48b3.zip
nixos/squeezelite: add support for PulseAudio version
-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 05506f5bcc7..36295e21c60 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";
       };
     };
-
   };
-
 }