mirror of
https://github.com/kierankihn/uno-game.git
synced 2025-12-27 02:13:18 +08:00
feat(server): add argument parsing for server port
- Integrated `argparse` to parse command-line arguments for setting the server port. - Default port set to `10001`.
This commit is contained in:
@@ -6,6 +6,7 @@ set(CMAKE_CXX_STANDARD 26)
|
||||
find_package(ftxui CONFIG REQUIRED)
|
||||
find_package(nlohmann_json REQUIRED)
|
||||
find_package(asio REQUIRED)
|
||||
find_package(argparse REQUIRED)
|
||||
|
||||
# 移除 /utf-8 选项
|
||||
if (CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND NOT CMAKE_CXX_COMPILER_FRONTEND_VARIANT MATCHES "MSVC")
|
||||
@@ -50,5 +51,8 @@ target_link_libraries(uno-client
|
||||
add_executable(uno-server src/server/main.cpp)
|
||||
target_link_libraries(uno-server
|
||||
PRIVATE uno-game-lib)
|
||||
target_link_libraries(uno-server
|
||||
PRIVATE argparse::argparse
|
||||
)
|
||||
|
||||
add_subdirectory(test)
|
||||
@@ -4,11 +4,32 @@
|
||||
* @author Yuzhe Guo
|
||||
* @date 2025.12.01
|
||||
*/
|
||||
#include <argparse/argparse.hpp>
|
||||
|
||||
#include "UnoServer.h"
|
||||
int main()
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
UNO::SERVER::UnoServer uno_server;
|
||||
uno_server.run();
|
||||
argparse::ArgumentParser parser("Uno Server", "0.1.0");
|
||||
|
||||
parser.add_argument("-p", "--port").help("server port").default_value(static_cast<uint16_t>(10001)).scan<'i', uint16_t>();
|
||||
|
||||
try {
|
||||
parser.parse_args(argc, argv);
|
||||
}
|
||||
catch (const std::exception &e) {
|
||||
std::cerr << e.what() << std::endl;
|
||||
std::cerr << parser;
|
||||
return 1;
|
||||
}
|
||||
|
||||
try {
|
||||
UNO::SERVER::UnoServer uno_server(parser.get<uint16_t>("--port"));
|
||||
uno_server.run();
|
||||
}
|
||||
catch (const std::exception &e) {
|
||||
std::cerr << e.what() << std::endl;
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user