Skip to content

Commit 9e6539f

Browse files
committed
[VEX-37]: Updater now makes a backup before updating
1 parent 84acb85 commit 9e6539f

File tree

1 file changed

+24
-1
lines changed

1 file changed

+24
-1
lines changed

src/updaterLib/core.py

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,12 @@
1515
def downloadNewVersion(versionString, softwareName, legacyMode):
1616
os.system("taskkill /f /im " + softwareName + ".exe")
1717

18+
with open(softwareName + ".exe", 'rb') as f:
19+
oldExec = f.read()
20+
21+
with open(softwareName + ".exe.bak", 'wb') as f:
22+
f.write(oldExec)
23+
1824
url = "https://github.com/" + GITHUB_USER + "/" + GITHUB_REPO + "/releases/download/" + versionString + "/" + softwareName + ".exe"
1925
r = requests.get(url, stream=True)
2026

@@ -34,8 +40,25 @@ def downloadNewVersion(versionString, softwareName, legacyMode):
3440

3541
downDiag.updateValues(downloaded, total, 0 if cTime == startTime else round(downloaded / (cTime - startTime), 2))
3642

37-
downDiag.destroy()
43+
failed = False
44+
with open(softwareName + ".exe", 'r') as f:
45+
if f.read() == "Not Found": failed = True
46+
47+
if failed:
48+
messagebox.showerror("Update Failed", "Update of " + softwareName + " failed. Reverting to previous version")
49+
50+
with open(softwareName + ".exe.bak", "rb") as f:
51+
oldExec = f.read()
52+
53+
with open(softwareName + ".exe", "wb") as f:
54+
f.write(oldExec)
55+
56+
ignoreVersion(versionString, softwareName, legacyMode)
3857

58+
downDiag.destroy()
59+
os.remove(softwareName + ".exe.bak")
60+
if failed: return
61+
3962
if not legacyMode:
4063
content = []
4164
with open(VERSION_PATH, 'r') as f:

0 commit comments

Comments
 (0)