mirror of
https://github.com/nestriness/cdc-file-transfer.git
synced 2026-01-30 12:25:35 +02:00
[cdc_stream] Add wildcard support to stop command (#30)
Adds support for stuff like cdc_stream stop * or cdc_stream stop user*:dir*.
This commit is contained in:
@@ -18,6 +18,7 @@
|
||||
#include "common/file_watcher_win.h"
|
||||
#include "common/log.h"
|
||||
#include "common/path.h"
|
||||
#include "common/path_filter.h"
|
||||
#include "common/platform.h"
|
||||
#include "common/port_manager.h"
|
||||
#include "common/process.h"
|
||||
@@ -555,6 +556,21 @@ bool MultiSession::HasSession(const std::string& instance_id) {
|
||||
return sessions_.find(instance_id) != sessions_.end();
|
||||
}
|
||||
|
||||
std::vector<std::string> MultiSession::MatchSessions(
|
||||
const std::string& instance_id_filter) {
|
||||
PathFilter filter;
|
||||
filter.AddRule(PathFilter::Rule::Type::kInclude, instance_id_filter);
|
||||
filter.AddRule(PathFilter::Rule::Type::kExclude, "*");
|
||||
|
||||
std::vector<std::string> matches;
|
||||
for (const auto& [instance_id, session] : sessions_) {
|
||||
if (filter.IsMatch(instance_id)) {
|
||||
matches.push_back(instance_id);
|
||||
}
|
||||
}
|
||||
return matches;
|
||||
}
|
||||
|
||||
bool MultiSession::IsSessionHealthy(const std::string& instance_id) {
|
||||
absl::ReaderMutexLock lock(&sessions_mutex_);
|
||||
auto iter = sessions_.find(instance_id);
|
||||
|
||||
Reference in New Issue
Block a user