re-implement auto-updates

This commit is contained in:
Fabian Dill
2020-01-18 15:04:39 +01:00
parent 72c33a2348
commit 674cad07ea
3 changed files with 39 additions and 32 deletions

View File

@@ -6,34 +6,37 @@ import shlex
import subprocess
import sys
import urllib.parse
import importlib
import Items
import Regions
while True:
try:
import aioconsole
break
except ImportError:
aioconsole = None
print('Required python module "aioconsole" not found, press enter to install it')
input()
subprocess.call([sys.executable, '-m', 'pip', 'install', '--upgrade', 'aioconsole'])
def update_command():
subprocess.call([sys.executable, '-m', 'pip', 'install', '-r', 'requirements.txt', '--upgrade'])
while True:
try:
import websockets
break
except ImportError:
websockets = None
print('Required python module "websockets" not found, press enter to install it')
input()
subprocess.call([sys.executable, '-m', 'pip', 'install', '--upgrade', 'websockets'])
with open('requirements.txt') as requirementsfile:
for line in requirementsfile.readlines():
module, remoteversion = line.split(">=")
try:
module = importlib.import_module(module)
except:
import traceback
traceback.print_exc()
input(f'Required python module {module} not found, press enter to install it')
update_command()
else:
if hasattr(module, "__version__"):
module_version = module.__version__
module = module.__name__ #also unloads the module to make it writable
if type(module_version) == str:
module_version = tuple(int(part.strip()) for part in module_version.split("."))
remoteversion = tuple(int(part.strip()) for part in remoteversion.split("."))
if module_version < remoteversion:
input(f'Required python module {module} is outdated ({module_version}<{remoteversion}), press enter to upgrade it')
update_command()
try:
import colorama
except ImportError:
colorama = None
import aioconsole
import websockets
import colorama
class ReceivedItem:
def __init__(self, item, location, player):