Remove n0emis as direct maintainer (#365023)
[NixPkgs.git] / nixos / modules / services / audio / squeezelite.nix
blob525285d00ca506a935910740f6bf94a9f6219cc4
2   config,
3   lib,
4   pkgs,
5   ...
6 }:
8 let
9   inherit (lib)
10     mkEnableOption
11     mkIf
12     mkOption
13     optionalString
14     types
15     ;
17   dataDir = "/var/lib/squeezelite";
18   cfg = config.services.squeezelite;
19   pkg = if cfg.pulseAudio then pkgs.squeezelite-pulse else pkgs.squeezelite;
20   bin = "${pkg}/bin/${pkg.pname}";
25   ###### interface
27   options.services.squeezelite = {
28     enable = mkEnableOption "Squeezelite, a software Squeezebox emulator";
30     pulseAudio = mkEnableOption "pulseaudio support";
32     extraArguments = mkOption {
33       default = "";
34       type = types.str;
35       description = ''
36         Additional command line arguments to pass to Squeezelite.
37       '';
38     };
39   };
41   ###### implementation
43   config = mkIf cfg.enable {
44     systemd.services.squeezelite = {
45       wantedBy = [ "multi-user.target" ];
46       after = [
47         "network.target"
48         "sound.target"
49       ];
50       description = "Software Squeezebox emulator";
51       serviceConfig = {
52         DynamicUser = true;
53         ExecStart = "${bin} -N ${dataDir}/player-name ${cfg.extraArguments}";
54         StateDirectory = builtins.baseNameOf dataDir;
55         SupplementaryGroups = "audio";
56       };
57     };
58   };