diff --git a/globals.py b/globals.py index 7744868d..06bc2d83 100644 --- a/globals.py +++ b/globals.py @@ -237,6 +237,10 @@ DEFAULT_FONT = 'ChunkFive Roman' CHAT_FONT = 'Silkscreen' +# Update mechanism settings +UPDATE_URL = 'https://github.com/boskee/Minecraft/archive/master.zip' +UPDATE_TEMPDIR = "pycraft_update" + class InvalidChoice(Exception): pass diff --git a/main.py b/main.py index 1c6c16b2..02a6d0a8 100755 --- a/main.py +++ b/main.py @@ -144,8 +144,7 @@ def main(options): G.main_timer.stop() G.SERVER._stop.set() G.SERVER.shutdown() - -if __name__ == '__main__': +def start(): log_info('Starting pyCraft...') parser = argparse.ArgumentParser(description='Play a Python made Minecraft clone.') @@ -163,3 +162,7 @@ def main(options): options = parser.parse_args() main(options) + + +if __name__ == '__main__': + start() diff --git a/update.py b/update.py new file mode 100644 index 00000000..d94a086d --- /dev/null +++ b/update.py @@ -0,0 +1,28 @@ +# Python packages +import shutil +import os +import zipfile +import urllib.request +from io import BytesIO + +# Third-party libraries +# Nothing for now... + +# Modules from this project +import globals as G + +def update(): + updatezip = urllib.request.urlopen(G.UPDATE_URL) + zipref = zipfile.ZipFile(BytesIO(updatezip.read())) + zipref.extractall(G.UPDATE_DIR) + zipref.close() + files=os.listdir(G.UPDATE_DIR) + for fle in files: + full_filename = os.path.join(G.UPDATE_DIR, fle) + if os.path.isfile(full_filename): + if file != "update.py": + current_dir=os.path.basename(os.getcwd()) + shutil.copy(full_filename, current_dir) + shutil.rmtree(G.UPDATE_DIR) + import main # Wonder what happens if you put this at the top? A TRACEBACK! + main.start()# Should work...