From 7c2130b7229e64fe37b8bcd09f74ca190063e246 Mon Sep 17 00:00:00 2001 From: Maxim Prokhorov Date: Fri, 6 May 2022 15:42:10 +0300 Subject: [PATCH] pio: prune unused libraries from shared_lib_dir --- code/scripts/pio_pre.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/code/scripts/pio_pre.py b/code/scripts/pio_pre.py index d60c6605..6d924788 100644 --- a/code/scripts/pio_pre.py +++ b/code/scripts/pio_pre.py @@ -67,10 +67,23 @@ def install_libraries(specs, storage, verbose=False): lm = LibraryPackageManager(storage) lm.set_log_level(logging.DEBUG if verbose else logging.INFO) + known = set() for spec in specs: pkg = lm.get_package(spec) if not pkg: - lm.install(spec, skip_dependencies=True) + pkg = lm.install(spec, skip_dependencies=True) + + if pkg: + known.add(pkg) + + lm.memcache_reset() + + installed = set(lm.get_installed()) + for pkg in installed.difference(known): + try: + lm.uninstall(pkg) + except: + pass def ensure_platform_updated():