int main()

in nodemanager/main.cpp [33:124]


int main(int argc, char* argv[])
{
    if (argc > 1)
    {
        if (string("-v") == argv[1])
        {
            Version::PrintVersionHistory();
            return 0;
        }
    }

    std::cout << "Node manager started." << std::endl;

/*
    trace = 0,
    debug = 1,
    info = 2,
    notice = 3,
    warn = 4,
    err = 5,
    critical = 6,
    alert = 7,
    emerg = 8,
    off = 9
*/
    auto level = spdlog::level::info;
    try { level = (spdlog::level::level_enum)NodeManagerConfig::GetLogLevel(); } catch (...) { std::cout << "No log level found in config file" << std::endl; }
    std::cout << "Log Level " << level << std::endl;
    Logger::SetLevel(level);
    Logger::Info("Log system works.");
    Logger::Info("Version: {0}", Version::GetVersion());

    std::string output;
    int ret = System::ExecuteCommandOut(
        output,
        "sed -i --",
        "'s/\\(Defaults\\s\\+\\)\\(requiretty\\)/\\1!\\2/g'",
        "/etc/sudoers");

    if (ret != 0)
    {
        Logger::Error(
            "Failed when execute {0}, exit code {1}",
            "sed -i -- 's/\\(Defaults\\s\\+\\)\\(requiretty\\)/\\1!\\2/g' /etc/sudoers",
            ret);

        return ret;
    }

#ifdef DEBUG

    if (argc > 1)
    {
        if (string("-t") == argv[1])
        {
            TestRunner tr;
            bool result = tr.Run();
            return result ? 0 : (int)ErrorCodes::TestRunFailed;
        }
    }

#endif // DEBUG

    Cleanup();

    Logger::Debug(
        "Trusted CA File: {0}",
        NodeManagerConfig::GetTrustedCAFile());

    const std::string networkName = "";
    RemoteExecutor executor(networkName);

    http_listener_config config;
    config.set_ssl_context_callback([] (auto& ctx)
    {
        HttpHelper::ConfigListenerSslContext(ctx);
    });

    RemoteCommunicator rc(executor, config, NodeManagerConfig::GetListeningUri());
    rc.Open();

    Logger::Info("Main: entering sleep loop.");

    while (true)
    {
        sleep(100);
    }

  //  rc.Close();

    return 0;
}