diff --git a/dependencies/CMakeLists.txt b/dependencies/CMakeLists.txt index e424f01..09e74ff 100644 --- a/dependencies/CMakeLists.txt +++ b/dependencies/CMakeLists.txt @@ -4,7 +4,7 @@ ## Author Francois Michaut ## ## Started on Wed Jul 10 10:27:39 2024 Francois Michaut -## Last update Sun Aug 24 12:51:51 2025 Francois Michaut +## Last update Sun Aug 24 20:00:59 2025 Francois Michaut ## ## CMakeLists.txt : CMake to fetch and build the dependecies of the FileShare executable ## @@ -40,7 +40,7 @@ FetchContent_Declare( FetchContent_Declare( fsp GIT_REPOSITORY https://github.com/FileShare-Project/libfsp.git - GIT_TAG e36512b59f700abcc5cb379d77ee18aa8b6757fb + GIT_TAG c3170e51e79d013763faca3e8deb618f47fefec9 ) FetchContent_MakeAvailable(fsp argparse SFML sqlite_orm tgui) diff --git a/source/cli/interactive.cpp b/source/cli/interactive.cpp index 4fb565b..0465d41 100644 --- a/source/cli/interactive.cpp +++ b/source/cli/interactive.cpp @@ -4,21 +4,22 @@ ** Author Francois Michaut ** ** Started on Wed Jul 23 13:49:52 2025 Francois Michaut -** Last update Sat Aug 23 00:13:51 2025 Francois Michaut +** Last update Sun Aug 24 19:57:35 2025 Francois Michaut ** ** interactive.cpp : Interractive Mode logic */ -#include "FileShare/Config/ServerConfig.hpp" -#include "FileShare/Protocol/Definitions.hpp" #include "FileShareVersion.hpp" -#include +#include +#include #include #include #include #include +#include + #include #include #include @@ -26,6 +27,7 @@ #include #include #include +#include extern bool server_run; void signal_handler(int sig); diff --git a/source/cli/main.cpp b/source/cli/main.cpp index 28e3854..fe58f47 100644 --- a/source/cli/main.cpp +++ b/source/cli/main.cpp @@ -4,7 +4,7 @@ ** Author Francois Michaut ** ** Started on Sat Nov 11 11:06:03 2023 Francois Michaut -** Last update Fri Aug 22 17:19:40 2025 Francois Michaut +** Last update Sun Aug 24 20:04:30 2025 Francois Michaut ** ** main.cpp : Main entry point of FileShare CLI */ @@ -29,6 +29,8 @@ #define EXECUTE_ARG "--execute" #define CONFIG_ARG "--config" #define SERVER_CONFIG_ARG "--server-config" +#define DEFAULT_CONFIG_ARG "--default-config" +#define DEFAULT_SERVER_CONFIG_ARG "--default-server-config" void interactive_mode(FileShare::Server &server); @@ -49,6 +51,14 @@ static auto setup_args() -> std::shared_ptr { .default_value("") .help("Speficy the path to the peer config file."); + parser->add_argument(DEFAULT_SERVER_CONFIG_ARG) + .flag() + .help("Use the default server config."); + + parser->add_argument(DEFAULT_CONFIG_ARG) + .flag() + .help("Use the default peer config."); + parser->add_argument("-c", CONNECT_ARG) .nargs(1, 2) .help("Connect to an external server. Format '-c ip [port]'. Required to execute commands."); @@ -124,13 +134,29 @@ static void run_server(FileShare::Server &server) { } } -static void run(std::shared_ptr &parser) { +static auto get_server_config(std::shared_ptr &parser) -> FileShare::ServerConfig { auto server_config_path = parser->get(SERVER_CONFIG_ARG); + + if (parser->get(DEFAULT_SERVER_CONFIG_ARG)) { + return FileShare::Server::default_config(); + } + return FileShare::ServerConfig::load(server_config_path); +} + +static auto get_default_peer_config(std::shared_ptr &parser) -> FileShare::Config { auto config_path = parser->get(CONFIG_ARG); + + if (parser->get(DEFAULT_CONFIG_ARG)) { + return FileShare::Server::default_peer_config(); + } + return FileShare::Config::load(config_path); +} + +static void run(std::shared_ptr &parser) { auto cmds = parser->get>(EXECUTE_ARG); - FileShare::ServerConfig config = FileShare::ServerConfig::load(server_config_path); - FileShare::Config peer_config = FileShare::Config::load(config_path); + FileShare::ServerConfig config = get_server_config(parser); + FileShare::Config peer_config = get_default_peer_config(parser); config.set_server_disabled(!parser->get(SERVER_ARG)); FileShare::Server server(config, peer_config);