From 775e9b7b8afdcae4218fab011b6f8755a406cf84 Mon Sep 17 00:00:00 2001 From: Gerhard Hoffmann Date: Tue, 26 Aug 2025 14:31:26 +0200 Subject: [PATCH] Use custom command line parser. Checkout branch after cloning. --- Git/main.cpp | 61 +++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 56 insertions(+), 5 deletions(-) diff --git a/Git/main.cpp b/Git/main.cpp index ff3c593..7dd1d69 100644 --- a/Git/main.cpp +++ b/Git/main.cpp @@ -8,6 +8,7 @@ #include #include #include +#include #include #include @@ -22,6 +23,7 @@ #include "message_handler.h" #include "utils_internal.h" #include "git_command.h" +#include "commandline_parser.h" int main(int argc, char **argv) { QByteArray const value = qgetenv("LC_ALL"); @@ -41,7 +43,7 @@ int main(int argc, char **argv) { setDebugLevel(LOG_NOTICE); } - QCommandLineParser parser; + CommandLineParser parser; parser.setApplicationDescription("git-commands for the update-system"); QCommandLineOption const checkCustomerRepositoryOption{"check"}; @@ -56,6 +58,54 @@ int main(int argc, char **argv) { QCommandLineOption verboseOption{parser.addVersionOption()}; parser.process(a); + parser.readSettings(); + +#if 0 + // note: also used in initEnv(). + + QString repositoryUrl = parser.repositoryUrl(); + + if (repositoryUrl.endsWith('/')) { + repositoryUrl.chop(1); + } + + if (!repositoryUrl.isEmpty()) { + qInfo() << "customer repository url" << repositoryUrl; + } else { + qCritical() << "ERROR customer repository url empty. git commands might fail."; + } + + if (repositoryUrl.contains("ptu-config.atb-comm.de")) { + QString gitSSHCommand(""); + QByteArray const v = qgetenv("GIT_SSH_COMMAND"); + if (v.isEmpty()) { + QString sshKeyFile("/opt/app/tools/atbupdate/.keys/id_ed25519_ptuConfig"); + if (QFileInfo(sshKeyFile).exists()) { + if (qgetenv("GIT_SSH_COMMAND").isNull()) { + gitSSHCommand = "ssh -i /opt/app/tools/atbupdate/.keys/id_ed25519_ptuConfig"; + if (!qputenv("GIT_SSH_COMMAND", QByteArray(gitSSHCommand.toStdString().c_str()))) { + qCritical() << "ERROR: GIT_SSH_COMMAND not put into env. Exiting..."; + return -1; + } + } + } else { + qCritical() << "ERROR ssh-key-file" << sshKeyFile << "does not exists. Exiting..."; + return -1; + } + } else { + gitSSHCommand = QString(v.toStdString().c_str()); + qInfo() << "GIT_SSH_COMMAND already set in enviroment:" << gitSSHCommand; + if (gitSSHCommand != "ssh -i /opt/app/tools/atbupdate/.keys/id_ed25519_ptuConfig") { + qCritical() << "ERROR" << gitSSHCommand << "wrong. Exiting..."; + return -1; + } + } + + if (!gitSSHCommand.isEmpty()) { + qInfo() << "GIT_SSH_COMMAND .........." << gitSSHCommand; + } + } +#endif if (parser.isSet(verboseOption)) { parser.showVersion(); @@ -108,12 +158,13 @@ int main(int argc, char **argv) { if (!gitCmd.clone()) { return -3; } + if (!gitCmd.checkout()) { + return -2; + } + qCritical() << internal::GIT_CUSTOMER_REPO_CLONED; + return internal::GIT_CLONED_CODE; } } - //int const machineNr = read1stLineOfFile("/mnt/system_data/machine_nr"); - //int const customerNr = read1stLineOfFile("/mnt/system_data/cust_nr"); - //int const zoneNr = read1stLineOfFile("/mnt/system_data/zone_nr"); - return 0; }