commandline_parser: add options ...

for sshKeyFile and StrictHostKeyChecking.
Set correct default values.
This commit is contained in:
2026-02-10 14:26:19 +01:00
parent 0155d51d3d
commit d5e62e72d3
2 changed files with 56 additions and 12 deletions

View File

@@ -6,7 +6,9 @@
#include <QFile>
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);

View File

@@ -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();