From dbb95f47a1c9ce4695b36bfd62fe4286f04f7bd6 Mon Sep 17 00:00:00 2001 From: woblight Date: Sun, 22 Jul 2018 18:59:07 +0200 Subject: [PATCH] Fix update unpacking --- GitAddonsManager.pro | 5 ++++- control.cpp | 10 ++++++---- main.cpp | 4 ++-- main.qml | 2 +- 4 files changed, 13 insertions(+), 8 deletions(-) diff --git a/GitAddonsManager.pro b/GitAddonsManager.pro index 849516a..da59139 100644 --- a/GitAddonsManager.pro +++ b/GitAddonsManager.pro @@ -37,7 +37,10 @@ HEADERS += \ LIBS += -lgit2 win32 { - DEFINES += _WIN32_WINNT=0x06010000 + DEFINES += _WIN32_WINNT=0x06010000 GAM_EXEC=\\\"$${TARGET}.exe\\\" +} +unix { + DEFINES += GAM_EXEC=\\\"$${TARGET}\\\" } isEmpty(GIT_DESCRIBE){ diff --git a/control.cpp b/control.cpp index 0af5bcc..2467fa0 100644 --- a/control.cpp +++ b/control.cpp @@ -490,10 +490,12 @@ void Control::downloadUpdate() void Control::executeUpdate() { delegate("Apply Update", [this](){ - QuaZip zip("GitAddonsManager.zip"); + QDir appRoot(QApplication::applicationDirPath()); + QuaZip zip(appRoot.absoluteFilePath("GitAddonsManager.zip")); if (!zip.open(QuaZip::mdUnzip)) return; - QDir root(QApplication::applicationDirPath() + "/update"); + QDir root(appRoot.absoluteFilePath("update")); + appRoot.mkdir(root.absolutePath()); unsigned int size = 0; foreach (const QuaZipFileInfo &info, zip.getFileInfoList()) size += info.uncompressedSize; @@ -515,8 +517,8 @@ void Control::executeUpdate() f.close(); } zip.close(); - QFile::remove("GitAddonsManager.zip"); - QFile exe(root.absoluteFilePath("GitAddonsManager")); + QFile::remove(appRoot.absoluteFilePath("GitAddonsManager.zip")); + QFile exe(root.absoluteFilePath(GAM_EXEC)); exe.setPermissions(QFile::ExeOwner | exe.permissions()); },[this](){ setUpdateStatus(UpdateStatus::UpdateDone); diff --git a/main.cpp b/main.cpp index dd6aff6..e178e0f 100644 --- a/main.cpp +++ b/main.cpp @@ -83,9 +83,9 @@ int main(int argc, char *argv[]) if (res == 2) { QStringList args = app.arguments().mid(1); args << "--update" << QString("\"%1\"").arg(app.applicationDirPath()); - QProcess().startDetached(app.applicationDirPath()+"/update/GitAddonsManager", args); + QProcess().startDetached(app.applicationDirPath()+"/update/" + GAM_EXEC, args); } if (res == 3) - QProcess().startDetached(update + "/GitAddonsManager", QApplication::arguments().mid(1) << "--update" << ""); + QProcess().startDetached(update + "/" + GAM_EXEC, QApplication::arguments().mid(1) << "--update" << ""); return res; } diff --git a/main.qml b/main.qml index a7e2ba5..6b4c2d1 100644 --- a/main.qml +++ b/main.qml @@ -169,7 +169,7 @@ ApplicationWindow { Engine.updateStatus === Engine.DownloadingUpdate ? qsTr("Downloading update...") : Engine.updateStatus === Engine.UpdateReady ? - qsTr("Apply update") : qsTr("error") + qsTr("Unpacking update") : qsTr("error") } } onClicked: Engine.updateStatus === Engine.NoUpdate ?