{ config, ... }: { flake.modules.homeManager.sharepoint-reference = { config, lib, pkgs, ... }: let rcloneConfig = "${config.xdg.configHome}/rclone/rclone.conf"; destination = "${config.xdg.dataHome}/yookr-reference/sharepoint"; in { systemd.user.services.sharepoint-reference-sync = { Unit = { Description = "Refresh the local SharePoint reference mirror"; ConditionPathExists = rcloneConfig; }; Service = { Type = "oneshot"; UMask = "0077"; ExecStart = [ "${lib.getExe pkgs.rclone} --config ${rcloneConfig} sync company-sharepoint: ${destination}/Algemeen --max-delete 100" "${lib.getExe pkgs.rclone} --config ${rcloneConfig} sync company-sharepoint-projecten: ${destination}/Projecten --max-delete 100" ]; }; }; systemd.user.timers.sharepoint-reference-sync = { Unit.Description = "Refresh the local SharePoint reference mirror hourly"; Timer = { OnCalendar = "hourly"; Persistent = true; RandomizedDelaySec = "10m"; }; Install.WantedBy = [ "timers.target" ]; }; }; flake.modules.nixos.sharepoint-reference = { home-manager.sharedModules = [ config.flake.modules.homeManager.sharepoint-reference ]; }; }