From c5e4aa44e7724768eda7e90fe5ac15117579c832 Mon Sep 17 00:00:00 2001 From: anonymoose2 Date: Fri, 24 Apr 2020 10:41:54 -0400 Subject: [PATCH] manager: Improve vendor update script's handling of raw JS/CSS files Also fix some formatting --- manager/scripts/update-vendor.py | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/manager/scripts/update-vendor.py b/manager/scripts/update-vendor.py index e4225c0..6c84e17 100755 --- a/manager/scripts/update-vendor.py +++ b/manager/scripts/update-vendor.py @@ -201,7 +201,7 @@ def get_tarball_url(self, version: str) -> str: req.raise_for_status() return req.json()["dist"]["tarball"] - + def get_github_latest_release_name(repo: str) -> str: return requests.get("https://api.github.com/repos/" + repo + "/releases/latest").json()["tag_name"] @@ -482,7 +482,7 @@ def download_version(self, version: str, vendor_path: str) -> None: extract_base_path=os.path.join(vendor_path, "js"), limit_files=["messenger.min.js", "messenger-theme-flat.js"], ) - + class ReconnectingWebsocketVendoredDependency(VendoredDependency): name = "reconnecting-websocket" @@ -558,7 +558,19 @@ def list_existing_vendored_dependencies() -> Dict[str, str]: # Remove old version if dependency.name in old_dependencies: print("Removing version " + old_dependencies[dependency.name]) - shutil.rmtree(os.path.join(vendor_dir, dependency.name + "-" + old_dependencies[dependency.name])) + + orig_fpath = os.path.join(vendor_dir, dependency.name + "-" + old_dependencies[dependency.name]) + for suffix in ["", ".css", ".js", ".min.css", ".min.js"]: + fpath = orig_fpath + suffix + if os.path.exists(fpath): + if os.path.isdir(fpath): + shutil.rmtree(fpath) + else: + os.remove(fpath) + + break + else: + print("Error: could not find old version " + old_dependencies[dependency.name], file=sys.stderr) prefix = "{% static 'vendor/" + dependency.name + "-"