1
Fork 0
mirror of https://github.com/redstrate/Astra.git synced 2025-04-20 19:57:45 +00:00

Introduce utility functions to read/write version files

This commit is contained in:
Joshua Goins 2023-12-21 20:28:41 -05:00
parent 6288971967
commit 53603f4032
5 changed files with 28 additions and 36 deletions

View file

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

View file

@ -99,10 +99,7 @@ QCoro::Task<bool> 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<bool> 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<bool> 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<bool> 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<bool> 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;
}

View file

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

View file

@ -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;
}
}

View file

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