Fix update unpacking

This commit is contained in:
woblight
2018-07-22 18:59:07 +02:00
parent 563fb98f64
commit dbb95f47a1
4 changed files with 13 additions and 8 deletions
+4 -1
View File
@@ -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){
+6 -4
View File
@@ -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);
+2 -2
View File
@@ -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;
}
+1 -1
View File
@@ -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 ?