add simple tkinter gui to install_update.py

This commit is contained in:
Headshotnoby 2021-06-22 16:36:08 -04:00
parent 75c8d4b45a
commit 956514688c

View File

@ -1,4 +1,6 @@
import zipfile, tarfile, platform, os, time, shutil import zipfile, tarfile, platform, os, time, shutil
from tkinter import Tk, HORIZONTAL
from tkinter.ttk import Progressbar, Label
ext = { ext = {
"Windows": "zip", "Windows": "zip",
@ -12,18 +14,32 @@ def extractzip(): # Mac
if platform.system() == "Darwin": shutil.rmtree("AO2XP.app", ignore_errors=True) # delete the old app package. if platform.system() == "Darwin": shutil.rmtree("AO2XP.app", ignore_errors=True) # delete the old app package.
archive.extractall() # extract the new version archive.extractall() # extract the new version
if os.path.exists("appbase"): # on a mac with the base folder moved out of .app Resources folder
os.system("mv appbase AO2XP.app/Contents/Resources/") # put it back in place
def extractgz(): # Linux def extractgz(): # Linux
archive = tarfile.open("update.tar.gz") archive = tarfile.open("update.tar.gz")
archive.extractall() archive.extractall()
if os.path.exists("update." + ext[platform.system()]): if os.path.exists("update." + ext[platform.system()]):
print "Waiting 3 seconds for AO2XP to close..." window = Tk()
window.title("AO2XP updater")
window.wm_resizable(0,0)
window.geometry("256x56")
lb = Label(window)
lb.pack()
pb = Progressbar(orient=HORIZONTAL, mode="indeterminate")
pb.pack()
pb.start()
lb["text"] = "Waiting 3 seconds for AO2XP to close..."
time.sleep(3) time.sleep(3)
print "Extracting update." + ext[platform.system()] + "..." lb["text"] = "Extracting update." + ext[platform.system()] + "..."
globals()["extract" + ext[platform.system()]]() # call the extract function according to OS globals()["extract" + ext[platform.system()]]() # call the extract function according to OS
print "Done!" lb["text"] = "Done!\nYou can now start AO2XP."
os.remove("update." + ext[platform.system()]) os.remove("update." + ext[platform.system()])
time.sleep(4)
else: else:
print "This program will be automatically run by AO2XP to apply updates.\nYou do not need to run this yourself." print "This program will be automatically run by AO2XP to apply updates.\nYou do not need to run this yourself."