Add extended options for Owncloud remotes

This commit is contained in:
Manuel Thalmann 2024-05-16 00:32:49 +02:00
parent 09e60ca053
commit faf4a0a290

View file

@ -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 = { syncProviders = {
nextcloud = rec { nextcloud = rec {
displayName = "Nextcloud"; displayName = "Nextcloud";
module = mkWebdavProvider { module = mkOwncloudProvider {
inherit displayName; inherit displayName;
vendor = "nextcloud"; vendor = "nextcloud";
}; };