mirror of
https://github.com/abraunegg/onedrive
synced 2024-06-08 17:02:25 +02:00
Update skip_file handling
* Update skip_file handling by using updated wild2regex to check files & paths of items to skip
This commit is contained in:
parent
57106a7b88
commit
c333389528
|
@ -39,7 +39,7 @@ final class SelectiveSync
|
|||
// config sync_list file handling
|
||||
bool isPathExcluded(string path)
|
||||
{
|
||||
return .isPathExcluded(path, paths);
|
||||
return .isPathExcluded(path, paths) || .isPathMatched(path, mask);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -67,6 +67,24 @@ private bool isPathExcluded(string path, string[] allowedPaths)
|
|||
return true;
|
||||
}
|
||||
|
||||
// test if the given path is matched by the regex expression.
|
||||
// recursively test up the tree.
|
||||
private bool isPathMatched(string path, Regex!char mask) {
|
||||
path = buildNormalizedPath(path);
|
||||
auto paths = pathSplitter(path);
|
||||
|
||||
string prefix = "";
|
||||
foreach(base; paths) {
|
||||
prefix ~= base;
|
||||
if (!path.matchFirst(mask).empty) {
|
||||
// the given path matches something which we should skip
|
||||
return true;
|
||||
}
|
||||
prefix ~= dirSeparator;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
unittest
|
||||
{
|
||||
assert(isPathExcluded("Documents2", ["Documents"]));
|
||||
|
|
Loading…
Reference in a new issue