PortValhalla/lib/modules/programs/nextcloud.nix

58 lines
1.2 KiB
Nix

{ lib, ... }:
let
inherit (lib) mkEnableOption mkOption types;
syncType = types.submodule ({ ... }: {
options = {
remotePath = mkOption {
type = types.str;
description = "The path to the folder on the cloud to sync.";
};
localPath = mkOption {
type = types.str;
description = "The path to sync the cloud content to.";
};
virtualFiles = (mkEnableOption "virtual file support") // {
default = true;
};
};
});
commonOptions = {
enable = mkEnableOption "Nextcloud client";
};
userOptions = {
folderSyncs = mkOption {
type = types.listOf syncType;
description = "The folders to synchronize";
default = [ ];
};
};
in {
options = {
valhalla = {
programs.nextcloud = commonOptions;
users = mkOption {
type = types.attrsOf (types.submodule (
{ ... }: {
options = {
programs.nextcloud = commonOptions;
};
}));
};
windows.users = mkOption {
type = types.attrsOf (types.submodule (
{ ... }: {
options = {
programs.nextcloud = userOptions;
};
}));
};
};
};
}