From cd1c73834c63738c6aee18703ec95437e7a88f96 Mon Sep 17 00:00:00 2001 From: marco Date: Tue, 22 Sep 2020 20:44:21 +0200 Subject: [PATCH] updater: reintrodotte funzioni per creare/rimuovere/rinominare --- core/servertools.py | 3 --- platformcode/updater.py | 16 +++++++++++++--- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/core/servertools.py b/core/servertools.py index b46ab412..36e0ef74 100644 --- a/core/servertools.py +++ b/core/servertools.py @@ -485,9 +485,6 @@ def get_server_parameters(server): # Debriders elif filetools.isfile(filetools.join(config.get_runtime_path(), "servers", "debriders", server + ".json")): path = filetools.join(config.get_runtime_path(), "servers", "debriders", server + ".json") - else: - from core.support import dbg - dbg() # When the server is not well defined in the channel (there is no connector), it shows an error because there is no "path" and the channel has to be checked dict_server = jsontools.load(filetools.read(path)) diff --git a/platformcode/updater.py b/platformcode/updater.py index 2fde815e..9de3b2db 100644 --- a/platformcode/updater.py +++ b/platformcode/updater.py @@ -117,9 +117,9 @@ def check(background=False): poFilesChanged = True if 'service.py' in file["filename"]: serviceChanged = True - if (file['status'] == 'modified' or file['status'] == 'added') and 'patch' not in file: - # è un file NON testuale, lo devo scaricare - # se non è già applicato + if (file['status'] == 'modified' and 'patch' not in file) or file['status'] == 'added': + # è un file NON testuale che è stato modificato, oppure è un file nuovo (la libreria non supporta la creazione di un nuovo file) + # lo devo scaricare filename = os.path.join(addonDir, file['filename']) dirname = os.path.dirname(filename) if not (filetools.isfile(os.path.join(addonDir, file['filename'])) and getSha(filename) == file['sha']): @@ -127,6 +127,16 @@ def check(background=False): if not os.path.exists(dirname): os.makedirs(dirname) urllib.urlretrieve(file['raw_url'], filename) + elif file['status'] == 'removed': + remove(os.path.join(addonDir, file["filename"])) + elif file['status'] == 'renamed': + # se non è già applicato + if not (filetools.isfile(os.path.join(addonDir, file['filename'])) and getSha(os.path.join(addonDir, file['filename'])) == file['sha']): + dirs = file['filename'].split('/') + for d in dirs[:-1]: + if not filetools.isdir(os.path.join(addonDir, d)): + filetools.mkdir(os.path.join(addonDir, d)) + filetools.move(os.path.join(addonDir, file['previous_filename']), os.path.join(addonDir, file['filename'])) changelog += commitJson['commit']['message'] + "\n" except: import traceback