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(ftxui CONFIG REQUIRED)
|
||||||
find_package(nlohmann_json REQUIRED)
|
find_package(nlohmann_json REQUIRED)
|
||||||
find_package(asio REQUIRED)
|
find_package(asio REQUIRED)
|
||||||
|
find_package(argparse REQUIRED)
|
||||||
|
|
||||||
# 移除 /utf-8 选项
|
# 移除 /utf-8 选项
|
||||||
if (CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND NOT CMAKE_CXX_COMPILER_FRONTEND_VARIANT MATCHES "MSVC")
|
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)
|
add_executable(uno-server src/server/main.cpp)
|
||||||
target_link_libraries(uno-server
|
target_link_libraries(uno-server
|
||||||
PRIVATE uno-game-lib)
|
PRIVATE uno-game-lib)
|
||||||
|
target_link_libraries(uno-server
|
||||||
|
PRIVATE argparse::argparse
|
||||||
|
)
|
||||||
|
|
||||||
add_subdirectory(test)
|
add_subdirectory(test)
|
||||||
@@ -4,11 +4,32 @@
|
|||||||
* @author Yuzhe Guo
|
* @author Yuzhe Guo
|
||||||
* @date 2025.12.01
|
* @date 2025.12.01
|
||||||
*/
|
*/
|
||||||
|
#include <argparse/argparse.hpp>
|
||||||
|
|
||||||
#include "UnoServer.h"
|
#include "UnoServer.h"
|
||||||
int main()
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
UNO::SERVER::UnoServer uno_server;
|
argparse::ArgumentParser parser("Uno Server", "0.1.0");
|
||||||
uno_server.run();
|
|
||||||
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user