From d5e62e72d3b130127c280385c1d774f9c8a67190 Mon Sep 17 00:00:00 2001 From: Siegfried Siegert Date: Tue, 10 Feb 2026 14:26:19 +0100 Subject: [PATCH] commandline_parser: add options ... for sshKeyFile and StrictHostKeyChecking. Set correct default values. --- UpdatePTUDevCtrl/commandline_parser.cpp | 62 ++++++++++++++++++++----- UpdatePTUDevCtrl/commandline_parser.h | 6 +++ 2 files changed, 56 insertions(+), 12 deletions(-) diff --git a/UpdatePTUDevCtrl/commandline_parser.cpp b/UpdatePTUDevCtrl/commandline_parser.cpp index 67613d7..b379b28 100644 --- a/UpdatePTUDevCtrl/commandline_parser.cpp +++ b/UpdatePTUDevCtrl/commandline_parser.cpp @@ -6,7 +6,9 @@ #include CommandLineParser::CommandLineParser() - : m_repositoryUrl("https://git.mimbach49.de/GerhardHoffmann") + : m_repositoryUrl("gitea@ptu-config.atb-comm.de:ATB/") + , m_sshKeyFile("/opt/app/tools/atbupdate/.keys/id_ed25519_ptuConfig") + , m_sshOptionStrictHostKeyChecking("false") , m_plugInDir("/usr/lib/") , m_plugInName("libCAslave.so") , m_workingDir("/opt/app/tools/atbupdate/") @@ -20,27 +22,36 @@ CommandLineParser::CommandLineParser() , m_alwaysDownloadDC("false") , m_repositoryUrlOption( QCommandLineOption( - QStringList() << "repository-url" << "repository-url", + QStringList() << "repository-url", QCoreApplication::translate("main", "Where to find a customer repository."), QCoreApplication::translate("main", "directory"))) + , m_sshKeyFileOption( + QCommandLineOption( + QStringList() << "sshKeyFile", + QCoreApplication::translate("main", "Used ssh key."), + QCoreApplication::translate("main", "file"))) + , m_sshOptionStrictHostKeyCheckingOption( + QCommandLineOption( + QStringList() << "sshStrictHostKeyChecking", + QCoreApplication::translate("main", "Enable ssh strict host key checking"))) , m_iniFileDirectoryOption( QCommandLineOption( - QStringList() << "ini-directory" << "ini-directory", + QStringList() << "ini-directory", QCoreApplication::translate("main", "Where to find an ini-file."), QCoreApplication::translate("main", "directory"))) , m_iniFileNameOption( QCommandLineOption( - QStringList() << "ini-filename" << "ini-filename", + QStringList() << "ini-filename", QCoreApplication::translate("main", "Name of ini-file."), QCoreApplication::translate("main", "file"))) , m_pluginDirectoryOption( QCommandLineOption( - QStringList() << "plugin-directory" << "plugin-directory", + QStringList() << "plugin-directory", QCoreApplication::translate("main", "Where to find dc-plugin."), QCoreApplication::translate("main", "directory"))) , m_pluginNameOption( QCommandLineOption( - QStringList() << "plugin-name" << "plugin-name", + QStringList() << "plugin-name", QCoreApplication::translate("main", "Name of dc-plugin."), QCoreApplication::translate("main", "directory"))) , m_noDownloadOption( @@ -57,17 +68,17 @@ CommandLineParser::CommandLineParser() QCoreApplication::translate("main", "Always download the dc-bin-file to DC)."))) , m_workingDirectoryOption( QCommandLineOption( - QStringList() << "working-directory" << "working-directory", + QStringList() << "working-directory", QCoreApplication::translate("main", "working directory of update-script."), QCoreApplication::translate("main", "directory"))) , m_psaConfigDirectoryOption( QCommandLineOption( - QStringList() << "psa-config-directory" << "psa-config-directory", + QStringList() << "psa-config-directory", QCoreApplication::translate("main", "config directory of json-files sent to dc."), QCoreApplication::translate("main", "directory"))) , m_psaTariffDirectoryOption( QCommandLineOption( - QStringList() << "psa-tariff-directory" << "psa-tariff-directory", + QStringList() << "psa-tariff-directory", QCoreApplication::translate("main", "tariff directory of tariff-json-files."), QCoreApplication::translate("main", "directory"))) , m_dryRunOption( @@ -94,8 +105,8 @@ CommandLineParser::CommandLineParser() , m_readDCVersionOption( QCommandLineOption( QStringList() << "D" << "read-dc-version", - QCoreApplication::translate("main", "Show version of device controller."), - QCoreApplication::translate("main", "Show version of device controller."))) { + QCoreApplication::translate("main", "Show version of device controller."))) +{ configure(); } @@ -104,9 +115,15 @@ void CommandLineParser::configure() { m_parser.addHelpOption(); m_parser.addVersionOption(); - m_repositoryUrlOption.setDefaultValue("https://git.mimbach49.de/GerhardHoffmann"); + m_repositoryUrlOption.setDefaultValue("gitea@ptu-config.atb-comm.de:ATB/"); m_parser.addOption(m_repositoryUrlOption); + m_sshKeyFileOption.setDefaultValue("/opt/app/tools/atbupdate/.keys/id_ed25519_ptuConfig"); + m_parser.addOption(m_sshKeyFileOption); + + m_sshOptionStrictHostKeyCheckingOption.setDefaultValue(""); + m_parser.addOption(m_sshOptionStrictHostKeyCheckingOption); + m_iniFileDirectoryOption.setDefaultValue(QCoreApplication::applicationDirPath()); m_parser.addOption(m_iniFileDirectoryOption); @@ -177,6 +194,12 @@ void CommandLineParser::readSettings() { if (key.contains("repository-url")) { m_repositoryUrl = v.toString(); } else + if (key.contains("sshKeyFile")) { + m_sshKeyFile = v.toString(); + } else + if (key.contains("sshOptionStrictHostKeyChecking")) { + m_sshOptionStrictHostKeyChecking = (v.toBool() ? "true" : "false"); + } else if (key.contains("plugin-directory")) { m_plugInDir = v.toString(); } else @@ -237,6 +260,21 @@ QString CommandLineParser::repositoryUrl() { return m_repositoryUrl; } +QString CommandLineParser::sshKeyFile() { + if (m_parser.isSet(m_sshKeyFileOption)) { + m_sshKeyFile = m_parser.value(m_sshKeyFileOption); + } + return m_sshKeyFile; +} + +bool CommandLineParser::sshOptionStrictHostKeyChecking() +{ + if (m_parser.isSet(m_sshOptionStrictHostKeyCheckingOption)) { + m_sshOptionStrictHostKeyChecking = m_parser.value(m_sshOptionStrictHostKeyCheckingOption); + } + return m_sshOptionStrictHostKeyChecking == "false" ? false : true; +} + QString CommandLineParser::plugInDir() { if (m_parser.isSet(m_pluginDirectoryOption)) { m_plugInDir = m_parser.value(m_pluginDirectoryOption); diff --git a/UpdatePTUDevCtrl/commandline_parser.h b/UpdatePTUDevCtrl/commandline_parser.h index 082680d..9e577c1 100644 --- a/UpdatePTUDevCtrl/commandline_parser.h +++ b/UpdatePTUDevCtrl/commandline_parser.h @@ -8,6 +8,8 @@ class CommandLineParser : public QCommandLineParser { QString m_repositoryUrl; + QString m_sshKeyFile; + QString m_sshOptionStrictHostKeyChecking; QString m_plugInDir; QString m_plugInName; QString m_workingDir; @@ -25,6 +27,8 @@ class CommandLineParser : public QCommandLineParser { QString m_dcDir{"etc/dc/"}; QCommandLineOption m_repositoryUrlOption; + QCommandLineOption m_sshKeyFileOption; + QCommandLineOption m_sshOptionStrictHostKeyCheckingOption; QCommandLineOption m_iniFileDirectoryOption; QCommandLineOption m_iniFileNameOption; QCommandLineOption m_pluginDirectoryOption; @@ -57,6 +61,8 @@ public: QString const &iniFileName() const { return m_iniFileName; } void readSettings(); QString repositoryUrl(); + QString sshKeyFile(); + bool sshOptionStrictHostKeyChecking(); QString plugInDir(); QString plugInName(); QString workingDir();