Multiple directories
This commit is contained in:
@ -5,6 +5,7 @@
|
||||
#include "utils/envmanager.hpp"
|
||||
#include "utils/directories.hpp"
|
||||
#include "services.hpp"
|
||||
#include "config.hpp"
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
#include <iomanip>
|
||||
@ -18,39 +19,37 @@ namespace dropshell {
|
||||
std::vector<ServerInfo> get_configured_servers() {
|
||||
std::vector<ServerInfo> servers;
|
||||
|
||||
std::string servers_dir = get_local_config_servers_path();
|
||||
if (servers_dir.empty()) {
|
||||
std::vector<std::string> local_config_directories = get_global_config()->get_local_config_directories();
|
||||
if (local_config_directories.empty())
|
||||
return servers;
|
||||
}
|
||||
|
||||
if (!fs::exists(servers_dir)) {
|
||||
std::cerr << "Error: Servers directory not found:" << servers_dir << std::endl;
|
||||
return servers;
|
||||
}
|
||||
for (int i = 0; i < local_config_directories.size(); i++) {
|
||||
std::string servers_dir = get_local_config_servers_path(i);
|
||||
if (!servers_dir.empty() && fs::exists(servers_dir)) {
|
||||
|
||||
for (const auto& entry : fs::directory_iterator(servers_dir)) {
|
||||
if (fs::is_directory(entry)) {
|
||||
std::string server_name = entry.path().filename().string();
|
||||
for (const auto& entry : fs::directory_iterator(servers_dir)) {
|
||||
if (fs::is_directory(entry)) {
|
||||
std::string server_name = entry.path().filename().string();
|
||||
|
||||
server_env env(server_name);
|
||||
if (!env.is_valid()) {
|
||||
std::cerr << "Error: Invalid server environment file: " << server_name << std::endl;
|
||||
continue;
|
||||
server_env env(server_name);
|
||||
if (!env.is_valid()) {
|
||||
std::cerr << "Error: Invalid server environment file: " << entry.path().string() << std::endl;
|
||||
continue;
|
||||
}
|
||||
servers.push_back({
|
||||
server_name,
|
||||
env.get_SSH_HOST(),
|
||||
env.get_SSH_USER(),
|
||||
env.get_SSH_PORT()
|
||||
});
|
||||
}
|
||||
}
|
||||
servers.push_back({
|
||||
server_name,
|
||||
env.get_SSH_HOST(),
|
||||
env.get_SSH_USER(),
|
||||
env.get_SSH_PORT()
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
return servers;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void list_servers() {
|
||||
auto servers = get_configured_servers();
|
||||
|
||||
|
Reference in New Issue
Block a user