infrastructure/machines/nixos/web01/linkal/metis-to-linkal.nix

21 lines
665 B
Nix
Raw Normal View History

# SPDX-FileCopyrightText: 2024 Maurice Debray <maurice.debray@dgnum.eu>
#
# SPDX-License-Identifier: EUPL-1.2
{ lib, pkgs }:
source:
let
#import metis stuff
metisCalendarData = builtins.fromJSON (builtins.readFile (source + /data/calendars.json));
calendars = metisCalendarData.sources;
inherit (import source { inherit pkgs; }) providers;
# helper function to map 2-level deep attribute-sets
mapDeepAttrs =
mapFct:
lib.concatMapAttrs (name: value: lib.mapAttrs' (name': value': mapFct name name' value') value);
toLinkal = upstream: identifier: lib.nameValuePair "${providers.${upstream}}${identifier}";
in
mapDeepAttrs toLinkal calendars