diff options
| author | Dan Engelbrecht <[email protected]> | 2024-11-06 10:03:36 +0100 |
|---|---|---|
| committer | GitHub Enterprise <[email protected]> | 2024-11-06 10:03:36 +0100 |
| commit | e608ea78b2d1be7ad9062e13eb9a6a15acab8d3c (patch) | |
| tree | 3e6f1ff411f8f458cbcc74d9d0b5d3032a6c4ff0 /src | |
| parent | project name list improvement (#211) (diff) | |
| download | zen-e608ea78b2d1be7ad9062e13eb9a6a15acab8d3c.tar.xz zen-e608ea78b2d1be7ad9062e13eb9a6a15acab8d3c.zip | |
Make op key and file path matching in `zen oplog-mirror` case insensitive (#212)
Diffstat (limited to 'src')
| -rw-r--r-- | src/zen/cmds/projectstore_cmd.cpp | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/src/zen/cmds/projectstore_cmd.cpp b/src/zen/cmds/projectstore_cmd.cpp index a0118576b..fed03b707 100644 --- a/src/zen/cmds/projectstore_cmd.cpp +++ b/src/zen/cmds/projectstore_cmd.cpp @@ -1813,6 +1813,18 @@ OplogMirrorCommand::Run(const ZenCliOptions& GlobalOptions, int argc, char** arg } } + if (!m_FilenameFilter.empty()) + { + std::replace(m_FilenameFilter.begin(), m_FilenameFilter.end(), '\\', '/'); + m_FilenameFilter = ToLower(m_FilenameFilter); + } + + if (!m_KeyFilter.empty()) + { + std::replace(m_KeyFilter.begin(), m_KeyFilter.end(), '\\', '/'); + m_KeyFilter = ToLower(m_KeyFilter); + } + ZEN_CONSOLE("Emitting file data from oplog '{}/{}' to '{}'", m_ProjectName, m_OplogName, m_MirrorRootPath); // Emit file data to target directory @@ -1842,9 +1854,13 @@ OplogMirrorCommand::Run(const ZenCliOptions& GlobalOptions, int argc, char** arg if (CbObjectView Data = DataIter.AsObjectView()) { std::filesystem::path FileName(Data["filename"sv].AsU8String()); - if (!m_FilenameFilter.empty() && FileName.string().find(m_FilenameFilter) == std::string::npos) + if (!m_FilenameFilter.empty()) { - continue; + std::string FileNameLowerCase = ToLower(FileName.string()); + if (FileNameLowerCase.find(m_FilenameFilter) == std::string::npos) + { + continue; + } } Oid ChunkId = Data["id"sv].AsObjectId(); if (ChunkIdFilter != Oid::Zero && ChunkIdFilter != ChunkId) @@ -1916,7 +1932,6 @@ OplogMirrorCommand::Run(const ZenCliOptions& GlobalOptions, int argc, char** arg Remaining--; if (!m_KeyFilter.empty()) { - // ZEN_CONSOLE("{}", Entry["key"].AsString()); if (Entry["key"].AsString().find(m_KeyFilter) == std::string_view::npos) { continue; |