diff options
Diffstat (limited to 'src/main.cpp')
-rw-r--r-- | src/main.cpp | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/src/main.cpp b/src/main.cpp index 5cd057278..d5c39cecd 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -382,6 +382,10 @@ std::unique_ptr<cMemorySettingsRepository> parseArguments(int argc, char **argv) TCLAP::SwitchArg noBufArg("", "no-output-buffering", "Disable output buffering", cmd); + TCLAP::SwitchArg runAsServiceArg("d", "run-as-service", "Run as a service on Windows", cmd); + + cmd.ignoreUnmatched(true); + cmd.parse(argc, argv); auto repo = cpp14::make_unique<cMemorySettingsRepository>(); @@ -420,6 +424,11 @@ std::unique_ptr<cMemorySettingsRepository> parseArguments(int argc, char **argv) setvbuf(stdout, nullptr, _IONBF, 0); } + if (runAsServiceArg.getValue()) + { + cRoot::m_RunAsService = true; + } + repo->SetReadOnly(); return repo; @@ -493,16 +502,6 @@ int main(int argc, char **argv) auto argsRepo = parseArguments(argc, argv); - // Check if comm logging is to be enabled: - for (int i = 0; i < argc; i++) - { - AString Arg(argv[i]); - if (NoCaseCompare(Arg, "/service") == 0) - { - cRoot::m_RunAsService = true; - } - } // for i - argv[] - #if defined(_WIN32) // Attempt to run as a service if (cRoot::m_RunAsService) |