Compare commits

..

No commits in common. "master" and "release_1.4.9" have entirely different histories.

10 changed files with 39 additions and 84 deletions

View File

@ -1,5 +1,5 @@
[REPOSITORY_URL] [REPOSITORY_URL]
repository-url="gitea@ptu-config.atb-comm.de:ATB/" repository-url="https://git.mimbach49.de/GerhardHoffmann"
[DIRECTORIES] [DIRECTORIES]
plugin-directory="/usr/lib/" plugin-directory="/usr/lib/"

View File

@ -55,7 +55,7 @@ int main(int argc, char **argv) {
openlog("ATB-UPDATE-DC-FIRMWARE", LOG_PERROR | LOG_PID | LOG_CONS, LOG_USER); openlog("ATB-UPDATE-DC-FIRMWARE", LOG_PERROR | LOG_PID | LOG_CONS, LOG_USER);
QApplication a(argc, argv); QApplication a(argc, argv);
QApplication::setApplicationName("ATBDownloadDCFirmware"); QApplication::setApplicationName("ATBUpdateTool");
QApplication::setApplicationVersion(APP_VERSION); QApplication::setApplicationVersion(APP_VERSION);
if (!messageHandlerInstalled()) { // change internal qt-QDebug-handling if (!messageHandlerInstalled()) { // change internal qt-QDebug-handling
@ -124,12 +124,11 @@ int main(int argc, char **argv) {
MainWindow mw; MainWindow mw;
mw.setWindowFlags(Qt::Window | Qt::FramelessWindowHint); mw.setWindowFlags(Qt::Window | Qt::FramelessWindowHint);
// mw.showFullScreen(); //mw.showFullScreen();
// qCritical() << "SHOW"; qCritical() << "SHOW";
// mw.show(); mw.show();
return 0; return a.exec();
// return a.exec();
} }

View File

@ -414,6 +414,10 @@ bool Update::downloadJson(enum FileTypeJson type,
} }
} }
m_hw->dc_autoRequest(false);
qDebug() << "SET AUTO-REQUEST=FALSE";
QThread::sleep(1); // make sure the auto-request flag is acknowledged
return ret; return ret;
} }

View File

@ -132,14 +132,7 @@ DEFINES += QT_DEPRECATED_WARNINGS
# update. # update.
# In case there is an automatic update (00:00-04:00) use M0100 instead # In case there is an automatic update (00:00-04:00) use M0100 instead
# of U0002. # of U0002.
# 1.4.10 : Fix: for the time being, never set the autoRequest-flag to false. VERSION="1.4.9"
# 1.4.11 : Fix: remove hard-coded path to git-repos of gitea in mimbach. Read
# from ATBUpdateTool.ini the url for the gitrepositories.
# 1.5.0 : Use ptu-config.atb-comm.de (given in ini-file) as new server for
# customer repositories.
# Fix: allow empty lines in opkg_commands.
# 1.5.1 : Fix: do not use cleanPath() on a url-address.
VERSION="1.5.1"
# PLANNED TODOS: # PLANNED TODOS:
# 1: Das Repository wird repariert bwz. neu geklont. Unabhaengig vom WAIT. # 1: Das Repository wird repariert bwz. neu geklont. Unabhaengig vom WAIT.
# 2: Wenn der WAIT-Button aktiv ist, dann wird ein Repository repariert (neu # 2: Wenn der WAIT-Button aktiv ist, dann wird ein Repository repariert (neu

View File

@ -9,15 +9,14 @@
#include <QStringList> #include <QStringList>
GitClient::GitClient(QString const &customerRepositoryPath, GitClient::GitClient(QString const &customerNrStr,
QString const &customerNrStr,
QString const &customerRepository, QString const &customerRepository,
QString const &workingDirectory, QString const &workingDirectory,
QString const &branchName, QString const &branchName,
QObject *parent) QObject *parent)
: QObject(parent) : QObject(parent)
, m_worker(qobject_cast<Worker *>(parent)) , m_worker(qobject_cast<Worker *>(parent))
, m_repositoryPath(customerRepositoryPath) , m_repositoryPath(QString("https://git.mimbach49.de/GerhardHoffmann/%1.git").arg(customerNrStr))
, m_customerNr(customerNrStr) , m_customerNr(customerNrStr)
, m_workingDirectory(workingDirectory) , m_workingDirectory(workingDirectory)
, m_branchName(branchName) , m_branchName(branchName)

View File

@ -22,8 +22,7 @@ class GitClient : public QObject {
bool copyGitConfigFromMaster(); bool copyGitConfigFromMaster();
public: public:
explicit GitClient(QString const &customerRepositoryUrl, explicit GitClient(QString const &customerNrStr,
QString const &customerNrStr,
QString const &repositoryPath, QString const &repositoryPath,
QString const &workingDirectory = QCoreApplication::applicationDirPath(), QString const &workingDirectory = QCoreApplication::applicationDirPath(),
QString const &branchName = "master", QString const &branchName = "master",

View File

@ -50,11 +50,9 @@
// argv[1]: file to send to dc // argv[1]: file to send to dc
int main(int argc, char *argv[]) { int main(int argc, char *argv[]) {
QByteArray const value = qgetenv("LC_ALL"); QByteArray const value = qgetenv("LC_ALL");
if (value.isEmpty() || value != "C") { if (value != "C") {
qputenv("LC_ALL", "C"); qputenv("LC_ALL", "C");
} }
// qputenv("XDG_RUNTIME_DIR", "/var/run/user/0"); // qputenv("XDG_RUNTIME_DIR", "/var/run/user/0");
openlog("ATB-UPDATE", LOG_PERROR | LOG_PID | LOG_CONS, LOG_USER); openlog("ATB-UPDATE", LOG_PERROR | LOG_PID | LOG_CONS, LOG_USER);
@ -74,38 +72,6 @@ int main(int argc, char *argv[]) {
parser.readSettings(); parser.readSettings();
QString repositoryUrl = parser.repositoryUrl(); QString repositoryUrl = parser.repositoryUrl();
if (repositoryUrl.endsWith('/')) {
repositoryUrl.chop(1);
}
QString gitSSHCommand("");
if (repositoryUrl.contains("ptu-config.atb-comm.de")) {
QByteArray const v = qgetenv("GIT_SSH_COMMAND");
if (v.isEmpty()) {
QString sshKeyFile("/opt/app/tools/atbupdate/.keys/id_ed25519_ptuConfig");
if (QFileInfo(sshKeyFile).exists()) {
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());
qCritical() << "WARNING 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;
}
}
}
QString plugInDir = parser.plugInDir(); QString plugInDir = parser.plugInDir();
QString plugInName = parser.plugInName(); QString plugInName = parser.plugInName();
QString workingDir = parser.workingDir(); QString workingDir = parser.workingDir();
@ -128,9 +94,6 @@ int main(int argc, char *argv[]) {
qInfo() << "pwd ......................" << rtPath; qInfo() << "pwd ......................" << rtPath;
qInfo() << "repositoryUrl ............" << repositoryUrl; qInfo() << "repositoryUrl ............" << repositoryUrl;
if (!gitSSHCommand.isEmpty()) {
qInfo() << "GIT_SSH_COMMAND .........." << gitSSHCommand;
}
qInfo() << "plugInDir ................" << plugInDir; qInfo() << "plugInDir ................" << plugInDir;
qInfo() << "plugInName ..............." << plugInName; qInfo() << "plugInName ..............." << plugInName;
qInfo() << "workingDir ..............." << workingDir; qInfo() << "workingDir ..............." << workingDir;

View File

@ -193,8 +193,8 @@ bool Update::openSerial(int br, QString baudrate, QString comPort) const {
+ " " + baudrate + " " + comPort + "...OK"); + " " + baudrate + " " + comPort + "...OK");
// m_hw->dc_autoRequest(true); // m_hw->dc_autoRequest(true);
// m_hw->dc_autoRequest(false); m_hw->dc_autoRequest(false);
// QThread::sleep(1); QThread::sleep(1);
Utils::printInfoMsg(QString("IS PORT OPEN %1").arg(m_hw->dc_isPortOpen())); Utils::printInfoMsg(QString("IS PORT OPEN %1").arg(m_hw->dc_isPortOpen()));
return true; return true;
@ -507,9 +507,9 @@ bool Update::downloadJson(enum FileTypeJson type,
} }
} }
// m_hw->dc_autoRequest(false); m_hw->dc_autoRequest(false);
// qDebug() << "SET AUTO-REQUEST=FALSE"; qDebug() << "SET AUTO-REQUEST=FALSE";
// QThread::sleep(1); // make sure the auto-request flag is acknowledged QThread::sleep(1); // make sure the auto-request flag is acknowledged
} }
return true; return true;
@ -584,8 +584,8 @@ QStringList Update::getDcSoftAndHardWareVersion() {
QString const &hwVersion = m_hw->dc_getHWversion().toLower().trimmed(); QString const &hwVersion = m_hw->dc_getHWversion().toLower().trimmed();
QString const &swVersion = m_hw->dc_getSWversion().toLower().trimmed(); QString const &swVersion = m_hw->dc_getSWversion().toLower().trimmed();
//m_hw->dc_autoRequest(false); m_hw->dc_autoRequest(false);
//QThread::sleep(1); // make sure the timer-slots are inactive QThread::sleep(1); // make sure the timer-slots are inactive
if (!hwVersion.isEmpty() && !swVersion.isEmpty()) { if (!hwVersion.isEmpty() && !swVersion.isEmpty()) {
return QStringList() << hwVersion << swVersion; return QStringList() << hwVersion << swVersion;

View File

@ -110,19 +110,19 @@ QString Utils::getTariffInfo(QString fileName) {
} }
QString Utils::zoneName(quint8 i) { QString Utils::zoneName(quint8 i) {
//static constexpr char const *zName[] = { static constexpr char const *zName[] = {
// "", "",
// "purple", "purple",
// "blue", "blue",
// "yellow", "yellow",
// "green", "green",
// "yellow (mars)", "yellow (mars)",
// "green (mars)" "green (mars)"
//}; };
//if (i < (sizeof(zName)/sizeof(char const *))) { if (i < (sizeof(zName)/sizeof(char const *))) {
// return zName[i]; return zName[i];
//} }
return "---"; return "N/A";
} }
void Utils::printCriticalErrorMsg(QString const &errorMsg, bool upper, bool lower) { void Utils::printCriticalErrorMsg(QString const &errorMsg, bool upper, bool lower) {

View File

@ -157,7 +157,7 @@ Worker::Worker(int customerNr,
, m_parent(parent) , m_parent(parent)
, m_serialInterface(serialInterface) , m_serialInterface(serialInterface)
, m_baudrate(baudrate) , m_baudrate(baudrate)
, m_gc(m_customerRepositoryPath, m_customerNrStr, m_customerRepository, m_workingDirectory, m_branchName, this) , m_gc(m_customerNrStr, m_customerRepository, m_workingDirectory, m_branchName, this)
, m_versionInfo(QStringList()) , m_versionInfo(QStringList())
, m_osVersion(getOsVersion()) , m_osVersion(getOsVersion())
, m_atbqtVersion(getATBQTVersion()) , m_atbqtVersion(getATBQTVersion())
@ -880,12 +880,10 @@ bool Worker::execOpkgCommands() {
while (!in.atEnd()) { while (!in.atEnd()) {
QString line = in.readLine(); QString line = in.readLine();
// TODO: "^\\s*[#]{0,}$" : empty line or comment line starting with # // TODO: "^\\s*[#]{0,}$" : empty line or comment line starting with #
static const QRegularExpression comment("^\\s*[#].*$"); static const QRegularExpression comment("^\\s*#.*$");
static const QRegularExpression emptyLine("^\\s*$"); if (line.indexOf(comment, 0) == -1) {
if (line.indexOf(emptyLine, 0) == -1 && // found opkg command
line.indexOf(comment, 0) == -1) {
QString opkgCommand = line.trimmed(); QString opkgCommand = line.trimmed();
qCritical() << "Found opkg-command" << opkgCommand;
if (!executeOpkgCommand(opkgCommand)) { if (!executeOpkgCommand(opkgCommand)) {
opkgErrorLst << opkgCommand; opkgErrorLst << opkgCommand;
} else { } else {