diff --git a/modules/programs/rclone.nix b/modules/programs/rclone.nix index 4dcdc4855..bac1cba2c 100644 --- a/modules/programs/rclone.nix +++ b/modules/programs/rclone.nix @@ -542,6 +542,22 @@ in Install.WantedBy = [ "default.target" ]; }; }; + + mkLaunchdConfigService = lib.mkIf (cfg.remotes != { }) { + rclone-config = { + enable = true; + config = { + ProgramArguments = [ (lib.getExe rcloneConfigScript) ]; + RunAtLoad = true; + KeepAlive = { + SuccessfulExit = false; + Crashed = true; + }; + StandardOutPath = "${config.home.homeDirectory}/Library/Logs/rclone/rclone-config.log"; + StandardErrorPath = "${config.home.homeDirectory}/Library/Logs/rclone/rclone-config.err.log"; + }; + }; + }; in lib.mkIf cfg.enable { home.packages = [ cfg.package ]; @@ -550,5 +566,8 @@ in (mkRcloneSidecars "mounts" mkSystemdSidecar) (mkRcloneSidecars "serve" mkSystemdSidecar) ]; + launchd.agents = lib.mkMerge [ + mkLaunchdConfigService + ]; }; }