summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main.cpp19
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)