Fix rm --exact / --matching not being invoked at all O_o
This commit is contained in:
+14
-5
@@ -431,13 +431,22 @@ static int run(cli_tool_t *p, json11::Json::object cfg)
|
|||||||
else if (cmd[0] == "rm")
|
else if (cmd[0] == "rm")
|
||||||
{
|
{
|
||||||
// Remove multiple snapshots and rebase their children
|
// Remove multiple snapshots and rebase their children
|
||||||
if (cmd.size() > 1)
|
if (cfg["exact"].bool_value() || cfg["matching"].bool_value())
|
||||||
{
|
{
|
||||||
cfg["from"] = cmd[1];
|
cmd.erase(cmd.begin(), cmd.begin()+1);
|
||||||
if (cmd.size() > 2)
|
cfg["globs"] = cmd;
|
||||||
cfg["to"] = cmd[2];
|
action_cb = p->start_rm_wildcard(cfg);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (cmd.size() > 1)
|
||||||
|
{
|
||||||
|
cfg["from"] = cmd[1];
|
||||||
|
if (cmd.size() > 2)
|
||||||
|
cfg["to"] = cmd[2];
|
||||||
|
}
|
||||||
|
action_cb = p->start_rm(cfg);
|
||||||
}
|
}
|
||||||
action_cb = p->start_rm(cfg);
|
|
||||||
}
|
}
|
||||||
else if (cmd[0] == "describe")
|
else if (cmd[0] == "describe")
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -691,10 +691,6 @@ resume_100:
|
|||||||
|
|
||||||
std::function<bool(cli_result_t &)> cli_tool_t::start_rm(json11::Json cfg)
|
std::function<bool(cli_result_t &)> cli_tool_t::start_rm(json11::Json cfg)
|
||||||
{
|
{
|
||||||
if (cfg["exact"].bool_value() || cfg["matching"].bool_value())
|
|
||||||
{
|
|
||||||
return start_rm_wildcard(cfg);
|
|
||||||
}
|
|
||||||
auto snap_remover = new snap_remover_t();
|
auto snap_remover = new snap_remover_t();
|
||||||
snap_remover->parent = this;
|
snap_remover->parent = this;
|
||||||
snap_remover->from_name = cfg["from"].string_value();
|
snap_remover->from_name = cfg["from"].string_value();
|
||||||
|
|||||||
@@ -146,6 +146,7 @@ struct wildcard_remover_t
|
|||||||
sub_cfg = cfg.object_items();
|
sub_cfg = cfg.object_items();
|
||||||
sub_cfg.erase("globs");
|
sub_cfg.erase("globs");
|
||||||
sub_cfg.erase("exact");
|
sub_cfg.erase("exact");
|
||||||
|
sub_cfg.erase("matching");
|
||||||
sub_cfg["from"] = from_cfg.name;
|
sub_cfg["from"] = from_cfg.name;
|
||||||
sub_cfg["to"] = to_cfg.name;
|
sub_cfg["to"] = to_cfg.name;
|
||||||
sub_cb = parent->start_rm(sub_cfg);
|
sub_cb = parent->start_rm(sub_cfg);
|
||||||
|
|||||||
Reference in New Issue
Block a user