aboutsummaryrefslogtreecommitdiffstats
path: root/modules/office/khal/assertions.nix
blob: bda7797118b12c3e12ba7da4d3fb9245fdb9d7e8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# Validates the configured khal calendars.
{ config, lib, ... }:
let
  cfg = config.office.khal;
  primaryCalendars = builtins.filter (calendar: calendar.primary) (builtins.attrValues cfg.calendars);
in
{
  config = lib.mkIf cfg.enable {
    assertions = [
      {
        assertion = cfg.calendars != { };
        message = "office.khal.enable requires at least one office.khal.calendars entry.";
      }
      {
        assertion = builtins.length primaryCalendars == 1;
        message = "Exactly one office.khal.calendars entry must set primary = true.";
      }
    ];
  };
}