diff options
Diffstat (limited to 'config')
-rw-r--r-- | config/CMakeLists.txt | 7 | ||||
-rw-r--r-- | config/include/hwd/config.h | 18 | ||||
-rw-r--r-- | config/src/config.cpp | 27 |
3 files changed, 52 insertions, 0 deletions
diff --git a/config/CMakeLists.txt b/config/CMakeLists.txt new file mode 100644 index 0000000..7fbe117 --- /dev/null +++ b/config/CMakeLists.txt @@ -0,0 +1,7 @@ +project(config CXX) +add_library(${PROJECT_NAME} STATIC + src/config.cpp + ) +target_include_directories(${PROJECT_NAME} + PUBLIC include + ) diff --git a/config/include/hwd/config.h b/config/include/hwd/config.h new file mode 100644 index 0000000..7f42cb5 --- /dev/null +++ b/config/include/hwd/config.h @@ -0,0 +1,18 @@ +#pragma once + +namespace hwd +{ +namespace config +{ + +constexpr int default_port = 4236; +constexpr const char * default_host = "127.0.0.1"; + +constexpr const char * port_variable = "HWDPORT"; +constexpr const char * host_variable = "HWDHOST"; + +int port(); +const char * host(); + +} // namespace config +} // namespace hwd diff --git a/config/src/config.cpp b/config/src/config.cpp new file mode 100644 index 0000000..8895a24 --- /dev/null +++ b/config/src/config.cpp @@ -0,0 +1,27 @@ +#include "hwd/config.h" + +#include <cstdlib> + + +namespace hwd +{ +namespace config +{ + +int port() +{ + if (const char * from_env = std::getenv(port_variable)) + if (int port_number = std::atoi(from_env)) + return port_number; + return default_port; +} + +const char * host() +{ + if (const char * from_env = std::getenv(host_variable)) + return from_env; + return default_host; +} + +} // namespace config +} // namespace hwd |