CLI: Cleaned up and documented context filter code.
This commit is contained in:
25
src/CLI.cpp
25
src/CLI.cpp
@@ -357,6 +357,8 @@ void CLI::add (const std::string& arg)
|
|||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// There are situations where a context filter is applied. This method
|
||||||
|
// determines whether one applies, and if so, applies it.
|
||||||
void CLI::addContextFilter ()
|
void CLI::addContextFilter ()
|
||||||
{
|
{
|
||||||
// Detect if any context is set, and bail out if not
|
// Detect if any context is set, and bail out if not
|
||||||
@@ -368,20 +370,17 @@ void CLI::addContextFilter ()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Detect if UUID or ID is set, and bail out
|
// Detect if UUID or ID is set, and bail out
|
||||||
if (_args.size ())
|
for (auto& a : _args)
|
||||||
{
|
{
|
||||||
for (auto& a : _args)
|
// TODO This looks wrong.
|
||||||
|
if (a.hasTag ("FILTER") &&
|
||||||
|
a.hasTag ("ATTRIBUTE") &&
|
||||||
|
! a.hasTag ("TERMINATED") &&
|
||||||
|
! a.hasTag ("WORD") &&
|
||||||
|
(a.attribute ("raw") == "id" || a.attribute ("raw") == "uuid"))
|
||||||
{
|
{
|
||||||
// TODO This looks wrong.
|
context.debug (format ("UUID/ID lexeme found '{1}', not applying context.", a.attribute ("raw")));
|
||||||
if (a.hasTag ("FILTER") &&
|
return;
|
||||||
a.hasTag ("ATTRIBUTE") &&
|
|
||||||
! a.hasTag ("TERMINATED") &&
|
|
||||||
! a.hasTag ("WORD") &&
|
|
||||||
(a.attribute ("raw") == "id" || a.attribute ("raw") == "uuid"))
|
|
||||||
{
|
|
||||||
context.debug (format ("UUID/ID lexeme found '{1}', not applying context.", a.attribute ("raw")));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -495,6 +494,8 @@ void CLI::analyze (bool parse /* = true */, bool strict /* = false */)
|
|||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Scan arguments, looking for any tagged CONFIG, in which case extract the name
|
||||||
|
// and value, applying it to context.config.
|
||||||
void CLI::applyOverrides ()
|
void CLI::applyOverrides ()
|
||||||
{
|
{
|
||||||
for (auto& a : _args)
|
for (auto& a : _args)
|
||||||
|
|||||||
Reference in New Issue
Block a user