diff --git a/src/apps/deskflow-core/deskflow-core.cpp b/src/apps/deskflow-core/deskflow-core.cpp index 285e259d5..488e67198 100644 --- a/src/apps/deskflow-core/deskflow-core.cpp +++ b/src/apps/deskflow-core/deskflow-core.cpp @@ -6,6 +6,7 @@ * SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception */ +#include "VersionInfo.h" #include "arch/Arch.h" #include "base/EventQueue.h" #include "base/Log.h" @@ -21,6 +22,8 @@ #include #include +const static auto kHeader = QStringLiteral("%1-core: %2\n").arg(kAppId, kDisplayVersion); + void showHelp() { std::cout << "Usage: deskflow-core [...options]" << std::endl; @@ -43,6 +46,20 @@ bool isHelp(int argc, char **argv) return false; } +void showVersion() +{ + std::cout << qPrintable(kHeader) << qPrintable(kCopyright) << std::endl; +} + +bool isVersion(int argc, char **argv) +{ + for (int i = 0; i < argc; ++i) { + if (argv[i] == std::string("--version") || argv[i] == std::string("-v")) + return true; + } + return false; +} + bool isServer(int argc, char **argv) { return (argc > 1 && argv[1] == std::string("server")); @@ -65,6 +82,11 @@ int main(int argc, char **argv) return s_exitSuccess; } + if (isVersion(argc, argv)) { + showVersion(); + return s_exitSuccess; + } + // Create a shared memory segment with a unique key // This is to prevent a new instance from running if one is already running QSharedMemory sharedMemory("deskflow-core");