Use custom command line parser.

Checkout branch after cloning.
This commit is contained in:
2025-08-26 14:31:26 +02:00
parent a8fdd29666
commit 775e9b7b8a

View File

@@ -8,6 +8,7 @@
#include <QSettings> #include <QSettings>
#include <QDir> #include <QDir>
#include <QDebug> #include <QDebug>
#include <QDateTime>
#include <QJsonDocument> #include <QJsonDocument>
#include <QJsonObject> #include <QJsonObject>
@@ -22,6 +23,7 @@
#include "message_handler.h" #include "message_handler.h"
#include "utils_internal.h" #include "utils_internal.h"
#include "git_command.h" #include "git_command.h"
#include "commandline_parser.h"
int main(int argc, char **argv) { int main(int argc, char **argv) {
QByteArray const value = qgetenv("LC_ALL"); QByteArray const value = qgetenv("LC_ALL");
@@ -41,7 +43,7 @@ int main(int argc, char **argv) {
setDebugLevel(LOG_NOTICE); setDebugLevel(LOG_NOTICE);
} }
QCommandLineParser parser; CommandLineParser parser;
parser.setApplicationDescription("git-commands for the update-system"); parser.setApplicationDescription("git-commands for the update-system");
QCommandLineOption const checkCustomerRepositoryOption{"check"}; QCommandLineOption const checkCustomerRepositoryOption{"check"};
@@ -56,6 +58,54 @@ int main(int argc, char **argv) {
QCommandLineOption verboseOption{parser.addVersionOption()}; QCommandLineOption verboseOption{parser.addVersionOption()};
parser.process(a); 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)) { if (parser.isSet(verboseOption)) {
parser.showVersion(); parser.showVersion();
@@ -108,12 +158,13 @@ int main(int argc, char **argv) {
if (!gitCmd.clone()) { if (!gitCmd.clone()) {
return -3; 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; return 0;
} }