diff --git a/modules/capabilities/sharepoint-reference.nix b/modules/capabilities/sharepoint-reference.nix new file mode 100644 index 0000000..d27fe28 --- /dev/null +++ b/modules/capabilities/sharepoint-reference.nix @@ -0,0 +1,47 @@ +{ 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 ]; + }; +} diff --git a/modules/hosts/zenith/default.nix b/modules/hosts/zenith/default.nix index a89f047..9d6052e 100644 --- a/modules/hosts/zenith/default.nix +++ b/modules/hosts/zenith/default.nix @@ -32,6 +32,7 @@ in imports = [ nixosModules.workstation-base nixosModules.laptop-power + nixosModules.sharepoint-reference ./_hardware.nix inputs.nixos-hardware.nixosModules.lenovo-yoga-7-14ARH7-amdgpu ];