feat(Core/Config): Implement config override with env vars (#16817)
* Core/Config: Implement config override with env vars Implement overriding of configuration from the .conf file with environment variables. Environment variables keys are autogenerated based on the keys defined in .conf file. Usage example: $ export TC_DATA_DIR=/usr $ AC_WORLD_SERVER_PORT=8080 ./worldserver * Add tests for env vars config
This commit is contained in:
parent
f633e4e9cd
commit
d69ee90ed3
5 changed files with 278 additions and 6 deletions
|
|
@ -184,6 +184,8 @@ int main(int argc, char** argv)
|
|||
if (!sConfigMgr->LoadAppConfigs())
|
||||
return 1;
|
||||
|
||||
std::vector<std::string> overriddenKeys = sConfigMgr->OverrideWithEnvVariablesIfAny();
|
||||
|
||||
std::shared_ptr<Acore::Asio::IoContext> ioContext = std::make_shared<Acore::Asio::IoContext>();
|
||||
|
||||
// Init all logs
|
||||
|
|
@ -203,6 +205,9 @@ int main(int argc, char** argv)
|
|||
LOG_INFO("server.worldserver", "> Using Boost version: {}.{}.{}", BOOST_VERSION / 100000, BOOST_VERSION / 100 % 1000, BOOST_VERSION % 100);
|
||||
});
|
||||
|
||||
for (std::string const& key : overriddenKeys)
|
||||
LOG_INFO("server.worldserver", "Configuration field {} was overridden with environment variable.", key);
|
||||
|
||||
OpenSSLCrypto::threadsSetup();
|
||||
|
||||
std::shared_ptr<void> opensslHandle(nullptr, [](void*) { OpenSSLCrypto::threadsCleanup(); });
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue