diff --git a/lib/modules/rclone.nix b/lib/modules/rclone.nix index 05925e9..68c5213 100644 --- a/lib/modules/rclone.nix +++ b/lib/modules/rclone.nix @@ -129,11 +129,29 @@ let }; })); + mkOwncloudProvider = { displayName ? "Owncloud", vendor ? "owncloud" }: ( + { config, ... }: { + imports = [ + (mkWebdavProvider { inherit displayName vendor; }) + ]; + + options = { + baseUrl = lib.mkOption { + type = lib.types.str; + description = "The base url of the ${displayName} server for automatically determining the WebDAV url."; + }; + }; + + config = { + url = "${lib.strings.removeSuffix "/" (lib.strings.normalizePath config.baseUrl)}/remote.php/dav/files/${config.username}"; + }; + }); + syncProviders = { nextcloud = rec { displayName = "Nextcloud"; - module = mkWebdavProvider { + module = mkOwncloudProvider { inherit displayName; vendor = "nextcloud"; }; @@ -225,7 +243,7 @@ in { Install = { WantedBy = lib.optional sync.autoStart "${targetName}.target"; - After = builtins.concatLists(builtins.attrValues sync.systemdDependencies); + After = builtins.concatLists (builtins.attrValues sync.systemdDependencies); }; }; })