From b200d38e48f6c944a040849959f5939e18a43de4 Mon Sep 17 00:00:00 2001 From: MihailRis Date: Wed, 11 Feb 2026 16:01:46 +0300 Subject: [PATCH] add '--stdin-cmd' command line flag --- src/devtools/stdin_reader.cpp | 2 ++ src/engine/CoreParameters.hpp | 1 + src/engine/Engine.cpp | 5 +++-- src/util/command_line.cpp | 4 ++++ 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/devtools/stdin_reader.cpp b/src/devtools/stdin_reader.cpp index adaa17c4c..dba26b75d 100644 --- a/src/devtools/stdin_reader.cpp +++ b/src/devtools/stdin_reader.cpp @@ -13,6 +13,8 @@ static std::thread reader_thread; void start_stdin_reader(cmd::CommandsInterpreter& interpreter) { reader_thread = std::thread([&interpreter]() { + logger.info() << "reader thread started"; + std::string line; while (std::getline(std::cin, line)) { if (line.empty()) { diff --git a/src/engine/CoreParameters.hpp b/src/engine/CoreParameters.hpp index c937bf3ad..b482f2bb5 100644 --- a/src/engine/CoreParameters.hpp +++ b/src/engine/CoreParameters.hpp @@ -6,6 +6,7 @@ struct CoreParameters { bool headless = false; bool testMode = false; + bool stdinCommands = false; std::filesystem::path resFolder = "res"; std::filesystem::path userFolder = "."; std::filesystem::path scriptFile; diff --git a/src/engine/Engine.cpp b/src/engine/Engine.cpp index 14d2af807..50a6f921b 100644 --- a/src/engine/Engine.cpp +++ b/src/engine/Engine.cpp @@ -192,8 +192,9 @@ void Engine::initialize(CoreParameters coreParameters) { if (!params.headless) { project->loadProjectClientScript(); } - - start_stdin_reader(*cmd); + if (params.stdinCommands) { + start_stdin_reader(*cmd); + } } void Engine::loadSettings() { diff --git a/src/util/command_line.cpp b/src/util/command_line.cpp index 7cb3614ef..e41a0ea57 100644 --- a/src/util/command_line.cpp +++ b/src/util/command_line.cpp @@ -62,6 +62,10 @@ static bool perform_keyword( params.headless = true; return true; }, "", "run in headless mode."), + ArgC("--stdin-cmd", [¶ms]() -> bool { + params.stdinCommands = true; + return true; + }, "", "run commands from stdin."), ArgC("--tps", [¶ms, &reader]() -> bool { params.tps = reader.nextInt(); return true;