transm/client/main.cpp

56 lines
1.4 KiB
C++

#include "client.h"
#include <SimpleIni.h>
#include <filesystem>
#include <iostream>
#include <of_path.h>
using namespace ofen;
namespace fs = std::filesystem;
struct TransmSet {
std::string ip{};
std::string port{};
};
std::shared_ptr<spdlog::logger> g_Logger = nullptr;
bool gen_default_ini(const std::string& path)
{
g_Logger->warn("Gen Default Setting Ini in [{}].", path);
CSimpleIniA ini_handle{};
ini_handle.LoadFile(path.c_str());
ini_handle.SetValue("Setting", "IP", "127.0.0.1");
ini_handle.SetValue("Setting", "PORT", "8989");
ini_handle.SaveFile(path.c_str());
return true;
}
bool read_ini(TransmSet& set)
{
fs::path home(COfPath::get_home());
std::string config_path = home.append("transm.ini").string();
if (!fs::exists(config_path) && !gen_default_ini(config_path)) {
return false;
}
CSimpleIniA ini_handle{};
SI_Error ret = ini_handle.LoadFile(config_path.c_str());
if (ret != SI_OK) {
g_Logger->error("Load Ini [{}] Failed.", config_path);
return false;
}
set.ip = ini_handle.GetValue("Setting", "IP");
set.port = ini_handle.GetValue("Setting", "PORT");
return true;
}
int main(int argc, char* argv[])
{
g_Logger = get_logger("client", "client.log");
TransmSet set;
if (!read_ini(set)) {
return -1;
}
CClient client(g_Logger);
client.run(set.ip, set.port);
g_Logger->info("exit &&&&&&&&&&&&&");
return 0;
}