add fct read config.toml
continuous-integration/drone/push Build is passing Details

pull/2/head
Bastien OLLIER 2 years ago
parent 59cf371568
commit 7296dab624

@ -4,9 +4,16 @@ project(planificador)
add_compile_options(-Wall -Wextra -pedantic)
add_executable(planificador
src/host.cpp
src/runner.cpp
src/main.cpp
include(FetchContent)
FetchContent_Declare(
tomlplusplus
GIT_REPOSITORY https://github.com/marzer/tomlplusplus.git
GIT_TAG v3.3.0
)
FetchContent_MakeAvailable(tomlplusplus)
file(GLOB nameFile "src/*.cpp")
add_executable(planificador src/host.cpp src/runner.cpp src/main.cpp)
target_compile_features(planificador PUBLIC cxx_std_17)
include_directories(${tomlplusplus_SOURCE_DIR}/include)

@ -3,10 +3,53 @@
#include <iostream>
#include <queue>
#include <vector>
#include <cstdint>
#include <toml++/toml.h>
#include <vector>
#include <filesystem>
#include <string_view>
#include "host.hpp"
namespace fs = std::filesystem;
std::vector<sk::host> makeMachinesFromToml(const fs::path& confFile){
std::vector<sk::host> hosts;
auto config = toml::parse_file( confFile.string() );
toml::table *server_section = config.get_as<toml::table>("serveurs");
// Parcourir les serveurs
for (const auto& [server_name_key, server_info_value] : *server_section) {
std::string server_name{server_name_key};
toml::table *server_info_ptr = server_info_value.as_table();
if (server_info_ptr == nullptr) {
}
toml::table &server_info = *server_info_ptr;
if(server_info.get_as<std::string>("ip") && server_info.get_as<int64_t>("nbContainerMax")){
std::string server_ip = server_info.get_as<std::string>("ip")->get();
int server_max_containers = server_info.get_as<int64_t>("nbContainerMax")->get();
hosts.push_back(sk::host(server_ip,server_max_containers));
}
}
return hosts;
}
int main() {
std::queue<sk::program> queue;
queue.push(sk::program{"echo $(( 1 + 2 ))",
"ghcr.io/moshell-lang/moshell:master"});
std::vector<sk::host> hosts = makeMachinesFromToml("conf.toml");
for(int x=0;x < hosts.size();x++){
std::cout<<hosts[x].getNbConnectionsMax()<<std::endl;
}
/*std::queue<sk::program> queue;
queue.push(sk::program{"echo $(( 1 + 2 ))", "ghcr.io/moshell-lang/moshell:master"});
sk::runner runner;
while (!queue.empty()) {
const sk::program &current = queue.front();
@ -14,6 +57,6 @@ int main() {
std::cout << "out: " << res.out << "\n";
std::cout << "err: " << res.err << "\n";
queue.pop();
}
}*/
return 0;
}
}
Loading…
Cancel
Save