From 53603f403207a628eb4b701dc9931f80c1392fdb Mon Sep 17 00:00:00 2001 From: Joshua Goins Date: Thu, 21 Dec 2023 20:28:41 -0500 Subject: [PATCH] Introduce utility functions to read/write version files --- launcher/include/utility.h | 2 ++ launcher/src/assetupdater.cpp | 25 +++++-------------------- launcher/src/patcher.cpp | 5 +---- launcher/src/profile.cpp | 16 ++++------------ launcher/src/utility.cpp | 16 ++++++++++++++++ 5 files changed, 28 insertions(+), 36 deletions(-) diff --git a/launcher/include/utility.h b/launcher/include/utility.h index 185cbc6..7118283 100644 --- a/launcher/include/utility.h +++ b/launcher/include/utility.h @@ -13,4 +13,6 @@ QString toWindowsPath(const QDir &dir); void printRequest(const QString &type, const QNetworkRequest &request); void createPathIfNeeded(const QDir &dir); void setSSL(QNetworkRequest &request); +QString readVersion(const QString &path); +void writeVersion(const QString &path, const QString &version); } \ No newline at end of file diff --git a/launcher/src/assetupdater.cpp b/launcher/src/assetupdater.cpp index ff4a354..4418d58 100644 --- a/launcher/src/assetupdater.cpp +++ b/launcher/src/assetupdater.cpp @@ -99,10 +99,7 @@ QCoro::Task AssetUpdater::checkRemoteDxvkVersion() QString localDxvkVersion; const QString dxvkVer = m_dxvkDir.absoluteFilePath(QStringLiteral("dxvk.ver")); if (QFile::exists(dxvkVer)) { - QFile wineJson(dxvkVer); - wineJson.open(QFile::ReadOnly | QFile::Text); - - localDxvkVersion = QString::fromUtf8(wineJson.readAll()); + localDxvkVersion = Utility::readVersion(dxvkVer); qInfo(ASTRA_LOG) << "Local DXVK version:" << localDxvkVersion; } @@ -222,10 +219,7 @@ QCoro::Task AssetUpdater::installCompatibilityTool() archive.close(); - QFile verFile(m_wineDir.absoluteFilePath(QStringLiteral("wine.ver"))); - verFile.open(QIODevice::WriteOnly | QIODevice::Text); - verFile.write(m_remoteCompatibilityToolVersion.toUtf8()); - verFile.close(); + Utility::writeVersion(m_wineDir.absoluteFilePath(QStringLiteral("wine.ver")), m_remoteCompatibilityToolVersion); m_profile.setCompatibilityToolVersion(m_remoteCompatibilityToolVersion); @@ -262,10 +256,7 @@ QCoro::Task AssetUpdater::installDxvkTool() archive.close(); - QFile verFile(m_dxvkDir.absoluteFilePath(QStringLiteral("dxvk.ver"))); - verFile.open(QIODevice::WriteOnly | QIODevice::Text); - verFile.write(m_remoteDxvkToolVersion.toUtf8()); - verFile.close(); + Utility::writeVersion(m_dxvkDir.absoluteFilePath(QStringLiteral("dxvk.ver")), m_remoteDxvkToolVersion); co_return true; } @@ -306,10 +297,7 @@ QCoro::Task AssetUpdater::installDalamudAssets() m_profile.setDalamudAssetVersion(m_remoteDalamudAssetVersion); - QFile file(m_dalamudAssetDir.absoluteFilePath(QStringLiteral("asset.ver"))); - file.open(QIODevice::WriteOnly | QIODevice::Text); - file.write(QString::number(m_remoteDalamudAssetVersion).toUtf8()); - file.close(); + Utility::writeVersion(m_dalamudAssetDir.absoluteFilePath(QStringLiteral("asset.ver")), QString::number(m_remoteDalamudAssetVersion)); co_return true; } @@ -387,10 +375,7 @@ QCoro::Task AssetUpdater::installRuntime() co_return false; } else { - QFile file(m_dalamudRuntimeDir.absoluteFilePath(QStringLiteral("runtime.ver"))); - file.open(QIODevice::WriteOnly | QIODevice::Text); - file.write(m_remoteRuntimeVersion.toUtf8()); - file.close(); + Utility::writeVersion(m_dalamudRuntimeDir.absoluteFilePath(QStringLiteral("runtime.ver")), m_remoteRuntimeVersion); co_return true; } diff --git a/launcher/src/patcher.cpp b/launcher/src/patcher.cpp index be38018..ca51119 100644 --- a/launcher/src/patcher.cpp +++ b/launcher/src/patcher.cpp @@ -200,10 +200,7 @@ void Patcher::processPatch(const QueuedPatch &patch) } } - QFile verFile(verFilePath); - verFile.open(QIODevice::WriteOnly | QIODevice::Text); - verFile.write(patch.version.toUtf8()); - verFile.close(); + Utility::writeVersion(verFilePath, patch.version); } void Patcher::setupDirectories() diff --git a/launcher/src/profile.cpp b/launcher/src/profile.cpp index dda332f..78c3b98 100644 --- a/launcher/src/profile.cpp +++ b/launcher/src/profile.cpp @@ -12,6 +12,7 @@ #include "astra_log.h" #include "launchercore.h" #include "profileconfig.h" +#include "utility.h" using namespace Qt::StringLiterals; @@ -35,10 +36,7 @@ void Profile::readDalamudInfo() if (wineDir.exists()) { const QString wineVer = wineDir.absoluteFilePath(QStringLiteral("wine.ver")); if (QFile::exists(wineVer)) { - QFile wineJson(wineVer); - wineJson.open(QFile::ReadOnly | QFile::Text); - - m_compatibilityToolVersion = QString::fromUtf8(wineJson.readAll()); + m_compatibilityToolVersion = Utility::readVersion(wineVer); qInfo(ASTRA_LOG) << "Compatibility tool version:" << m_compatibilityToolVersion; } } @@ -69,19 +67,13 @@ void Profile::readDalamudInfo() const QString dalamudAssetsVer = dalamudAssetsDir.absoluteFilePath(QStringLiteral("asset.ver")); if (QFile::exists(dalamudAssetsVer)) { - QFile assetJson(dalamudAssetsVer); - assetJson.open(QFile::ReadOnly | QFile::Text); - - m_dalamudAssetVersion = QString::fromUtf8(assetJson.readAll()).toInt(); + m_dalamudAssetVersion = Utility::readVersion(dalamudAssetsVer).toInt(); qInfo(ASTRA_LOG) << "Dalamud asset version:" << m_dalamudVersion; } const QString dalamudRuntimeVer = dalamudRuntimeDir.absoluteFilePath(QStringLiteral("runtime.ver")); if (QFile::exists(dalamudRuntimeVer)) { - QFile runtimeVer(dalamudRuntimeVer); - runtimeVer.open(QFile::ReadOnly | QFile::Text); - - m_runtimeVersion = QString::fromUtf8(runtimeVer.readAll()); + m_runtimeVersion = Utility::readVersion(dalamudRuntimeVer); qInfo(ASTRA_LOG) << "Dalamud runtime version:" << m_dalamudVersion; } } diff --git a/launcher/src/utility.cpp b/launcher/src/utility.cpp index 7078e72..13e90d7 100644 --- a/launcher/src/utility.cpp +++ b/launcher/src/utility.cpp @@ -45,4 +45,20 @@ void Utility::setSSL(QNetworkRequest &request) config.setPeerVerifyMode(QSslSocket::VerifyNone); request.setSslConfiguration(config); +} + +QString Utility::readVersion(const QString &path) +{ + QFile file(path); + file.open(QFile::ReadOnly | QFile::Text); + + return QString::fromUtf8(file.readAll()); +} + +void Utility::writeVersion(const QString &path, const QString &version) +{ + QFile verFile(path); + verFile.open(QIODevice::WriteOnly | QIODevice::Text); + verFile.write(version.toUtf8()); + verFile.close(); } \ No newline at end of file