Sun, 15 Dec 2019 12:11:16 +0100
add documentation for all new config elements
dav/scfg.c | file | annotate | diff | comparison | revisions | |
dav/xattrtool.c | file | annotate | diff | comparison | revisions | |
docs/src/configuration.md | file | annotate | diff | comparison | revisions | |
docs/src/sync-configuration.md | file | annotate | diff | comparison | revisions |
--- a/dav/scfg.c Sun Dec 15 10:44:11 2019 +0100 +++ b/dav/scfg.c Sun Dec 15 12:11:16 2019 +0100 @@ -391,7 +391,7 @@ xmlFree(attr_type); } if(attr_always) { - v.always = util_getboolean(attr_always); + v.always = util_getboolean((const char*)attr_always); xmlFree(attr_always); }
--- a/dav/xattrtool.c Sun Dec 15 10:44:11 2019 +0100 +++ b/dav/xattrtool.c Sun Dec 15 12:11:16 2019 +0100 @@ -165,7 +165,7 @@ char *attr = argv[3]; int ret = 0; - size_t valuelen = 0; + ssize_t valuelen = 0; char *value = xattr_get(file, attr, &valuelen); if(value) { if(raw) {
--- a/docs/src/configuration.md Sun Dec 15 10:44:11 2019 +0100 +++ b/docs/src/configuration.md Sun Dec 15 12:11:16 2019 +0100 @@ -41,6 +41,13 @@ Type: base64 string \ Example: `<password>MTIzNDU2Nzg=</password>` +### stored-user + +Credentials id used for authentication. The credentials must be stored in the secret store. + +Type: string \ +Example: `<stored-user>alice</stored-user>` + ### default-key Identifer of the key used by default for encryption. There must be a configured key with this name.
--- a/docs/src/sync-configuration.md Sun Dec 15 10:44:11 2019 +0100 +++ b/docs/src/sync-configuration.md Sun Dec 15 12:11:16 2019 +0100 @@ -11,7 +11,7 @@ This element configures a sync-directory. A sync-directory must have a unique name, a (local) path, repository and a database. Required elements: `<name>`, `<repository>`, `<path>`, `<database>` \ -Optional elements: `<collection>`, `<trash>`, `<max-retry>`, `<backup-on-pull>`, `<lock-pull>`, `<lock-push>`, `<lock-timeout>`, `<filter>` +Optional elements: `<collection>`, `<trash>`, `<max-retry>`, `<backup-on-pull>`, `<lock-pull>`, `<lock-push>`, `<lock-timeout>`, `<filter>`, `<metadata>`, `<versioning>`, `<splitconfig>`, `<symlink-intern>`, `<symlink-extern>`, `<tagconfig>`, `<allow-cmd>` ### name @@ -53,6 +53,14 @@ Default: / \ Example: `<collection>/myfiles</collection>` +### hashing + +Enables file hashing. The hash will be used for checking if files are modified and should be synchronized. + +Type: boolean \ +Default: false \ +Example: `<hashing>true</hashing>` + ### trash Path to the trash directory for this sync-directory. Files that should be deleted will be moved to this directory. The value must be an absolute path or relative to the sync-directory path. @@ -60,6 +68,14 @@ Type: string \ Example: `<trash>.trash</trash>` +### push-strategy + +Controls the strategy *push* uses for deciding which files should be pushed. Possible values are: `metadata` and `hash`. + +Type: pushstrategy enum \ +Default: metadata +Example: `<push-strategy>hash</push-strategy>` + ### max-retry This integer value controls how many attempts of downloading/uploading a file in case of an error are made. @@ -100,6 +116,54 @@ Default: 0 \ Example: `<lock-timeout>50</lock-timeout>` +### metadata + +Controls which file metadata should be synchronized. Possible values are: `mtime`, `mode`, `xattr` and `all`. If this element is not specified, no metadata will be synchronized. + +Type: list of metadata \ +Example: `<metadata>mtime mode</metadata>` + +### versioning + +Enables resource versioning for the commands *push* and *archive*. + +Possible attributes: `type`, `always` + +The attribute `type` sets the versioning method type. Possible values are `simple` and `deltav`. With *simple* versioning, resources are moved to a version history collection before the new content is uploaded. With *deltav*, the DeltaV methods *checkout* and *checkin* are used to store versions. The default value of the `type` attribute is `simple`. + +The boolean attribute `always` specifies if new versions should be always created. The default value is `false`. + +Optional elements: `<history>` +Example: `<versioning type="simple" always="true" />` + +### history + +Specifies the history collection path for *simple* versioning. The path is interpreted relatively to the root of the sync directory. + +Type: string \ +Default: `/.dav-version-history` +Example: + + <versioning type="simple"> + <history>/.backup/</history> + </versioning> + +### symlink-intern + +Configures the handling of symlinks, which have a target inside the sync directory. Possible values are: `sync`, `follow` and `ignore`. + +Type: symlink enum \ +Default: follow \ +Example: `<symlink-intern>sync</symlink-intern>` + +## symlink-extern + +Configures the handling of symlinks, which have a target outside the sync directory. Possible values are: `follow` and `ignore`. Unlike internal symlinks, external symlinks cannot be synced. + +Type: symlink enum \ +Default: follow \ +Example: `<symlink-extern>ignore</symlink-extern>` + ### tagconfig Configures the local store for resource tags. If this element is specified, resource tags are stored locally. @@ -140,6 +204,48 @@ Default: no_conflict \ Example: `<on-conflict>merge</on-conflict>` +### splitconfig + +Parent element for all `<split>` elements. + +### split + +Configures if and how files should be splitted into multiple parts on *push*. + +The blocksize element configures the size of each part. + +The elements filter and minsize specify, in which case the files should be splitted. + +Required elements: `<blocksize>` \ +Optional elements: `<filter>`, `<minsize>` + +Example: + + <splitconfig> + <!-- split all files with .vmdk file extension that are bigger than 100mb --> + <split> + <blocksize>10m</blocksize> + <filter> + <include>\.vmdk$</include> + </filter> + <minsize>100m</minsize> + </split> + </splitconfig> + +### blocksize + +Specifies the size of each file part. + +Type: size \ +Example: `<blocksize>100k</blocksize>` + +### minsize + +Specifies the minimal size a file must have for enabling file splitting. + +Type: size \ +Default: 0 \ +Example: `<minsize>100m</minsize>` ### filter