python3Packages.orjson: Disable failing tests on 32 bit
[NixPkgs.git] / nixos / modules / services / hardware / udisks2.nix
blob70667dc6d3b12f95b8179daa24ec4e126d636983
1 # Udisks daemon.
3 { config, lib, pkgs, ... }:
5 with lib;
7 let
8   settingsFormat = pkgs.formats.ini {
9     listToValue = concatMapStringsSep "," (generators.mkValueStringDefault {});
10   };
11   configFiles = mapAttrs (name: value: (settingsFormat.generate name value)) (mapAttrs' (name: value: nameValuePair name value ) config.services.udisks2.settings);
16   ###### interface
18   options = {
20     services.udisks2 = {
22       enable = mkEnableOption (lib.mdDoc "udisks2, a DBus service that allows applications to query and manipulate storage devices.");
24       settings = mkOption rec {
25         type = types.attrsOf settingsFormat.type;
26         apply = recursiveUpdate default;
27         default = {
28           "udisks2.conf" = {
29             udisks2 = {
30               modules = [ "*" ];
31               modules_load_preference = "ondemand";
32             };
33             defaults = {
34               encryption = "luks2";
35             };
36           };
37         };
38         example = literalExpression ''
39         {
40           "WDC-WD10EZEX-60M2NA0-WD-WCC3F3SJ0698.conf" = {
41             ATA = {
42               StandbyTimeout = 50;
43             };
44           };
45         };
46         '';
47         description = lib.mdDoc ''
48           Options passed to udisksd.
49           See [here](http://manpages.ubuntu.com/manpages/latest/en/man5/udisks2.conf.5.html) and
50           drive configuration in [here](http://manpages.ubuntu.com/manpages/latest/en/man8/udisks.8.html) for supported options.
51         '';
52       };
54     };
56   };
59   ###### implementation
61   config = mkIf config.services.udisks2.enable {
63     environment.systemPackages = [ pkgs.udisks2 ];
65     environment.etc = mapAttrs' (name: value: nameValuePair "udisks2/${name}" { source = value; } ) configFiles;
67     security.polkit.enable = true;
69     services.dbus.packages = [ pkgs.udisks2 ];
71     systemd.tmpfiles.rules = [ "d /var/lib/udisks2 0755 root root -" ];
73     services.udev.packages = [ pkgs.udisks2 ];
75     systemd.packages = [ pkgs.udisks2 ];
76   };