aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDan Engelbrecht <[email protected]>2024-11-06 10:03:36 +0100
committerGitHub Enterprise <[email protected]>2024-11-06 10:03:36 +0100
commite608ea78b2d1be7ad9062e13eb9a6a15acab8d3c (patch)
tree3e6f1ff411f8f458cbcc74d9d0b5d3032a6c4ff0 /src
parentproject name list improvement (#211) (diff)
downloadzen-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.cpp21
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;