grafana-alloy: don't build the frontend twice
[NixPkgs.git] / nixos / modules / services / desktops / gnome / evolution-data-server.nix
bloba43e8dadb421260dd136ebdf0fb4f0386c6dee57
1 # Evolution Data Server daemon.
3 { config, lib, pkgs, ... }:
7   meta = {
8     maintainers = lib.teams.gnome.members;
9   };
11   ###### interface
13   options = {
15     services.gnome.evolution-data-server = {
16       enable = lib.mkEnableOption "Evolution Data Server, a collection of services for storing addressbooks and calendars";
17       plugins = lib.mkOption {
18         type = lib.types.listOf lib.types.package;
19         default = [ ];
20         description = "Plugins for Evolution Data Server.";
21       };
22     };
23     programs.evolution = {
24       enable = lib.mkEnableOption "Evolution, a Personal information management application that provides integrated mail, calendaring and address book functionality";
25       plugins = lib.mkOption {
26         type = lib.types.listOf lib.types.package;
27         default = [ ];
28         example = lib.literalExpression "[ pkgs.evolution-ews ]";
29         description = "Plugins for Evolution.";
30       };
32     };
33   };
35   ###### implementation
37   config =
38     let
39       bundle = pkgs.evolutionWithPlugins.override { inherit (config.services.gnome.evolution-data-server) plugins; };
40     in
41     lib.mkMerge [
42       (lib.mkIf config.services.gnome.evolution-data-server.enable {
43         environment.systemPackages = [ bundle ];
45         services.dbus.packages = [ bundle ];
47         systemd.packages = [ bundle ];
48       })
49       (lib.mkIf config.programs.evolution.enable {
50         services.gnome.evolution-data-server = {
51           enable = true;
52           plugins = [ pkgs.evolution ] ++ config.programs.evolution.plugins;
53         };
54         services.gnome.gnome-keyring.enable = true;
55       })
56     ];