mirror of
https://github.com/platformio/platformio-core.git
synced 2025-07-30 01:57:13 +02:00
Improve package caching for PkgManager
This commit is contained in:
@ -261,7 +261,6 @@ class BasePkgManager(PkgRepoMixin, PkgInstallerMixin):
|
||||
_INSTALLED_CACHE = {}
|
||||
|
||||
def __init__(self, package_dir, repositories=None):
|
||||
self._INSTALLED_CACHE = {}
|
||||
self.repositories = repositories
|
||||
self.package_dir = package_dir
|
||||
if not isdir(self.package_dir):
|
||||
@ -272,10 +271,6 @@ class BasePkgManager(PkgRepoMixin, PkgInstallerMixin):
|
||||
def manifest_name(self):
|
||||
raise NotImplementedError()
|
||||
|
||||
@staticmethod
|
||||
def reset_cache():
|
||||
BasePkgManager._INSTALLED_CACHE = {}
|
||||
|
||||
@staticmethod
|
||||
def download(url, dest_dir, sha1=None):
|
||||
fd = FileDownloader(url, dest_dir)
|
||||
@ -289,6 +284,10 @@ class BasePkgManager(PkgRepoMixin, PkgInstallerMixin):
|
||||
fu = FileUnpacker(source_path, dest_dir)
|
||||
return fu.start()
|
||||
|
||||
def reset_cache(self):
|
||||
if self.package_dir in BasePkgManager._INSTALLED_CACHE:
|
||||
del BasePkgManager._INSTALLED_CACHE[self.package_dir]
|
||||
|
||||
def print_message(self, message, nl=True):
|
||||
click.echo("%s: %s" % (self.__class__.__name__, message), nl=nl)
|
||||
|
||||
|
@ -26,17 +26,17 @@ import semantic_version
|
||||
from platformio import app, exception, util
|
||||
from platformio.managers.package import BasePkgManager, PackageManager
|
||||
|
||||
PACKAGE_DIR = join(util.get_home_dir(), "packages")
|
||||
PLATFORMS_DIR = join(util.get_home_dir(), "platforms")
|
||||
PACKAGES_DIR = join(util.get_home_dir(), "packages")
|
||||
|
||||
|
||||
class PlatformManager(BasePkgManager):
|
||||
|
||||
def __init__(self):
|
||||
def __init__(self, package_dir=None, repositories=None):
|
||||
if not repositories:
|
||||
repositories = ["http://dl.platformio.org/platforms/manifest.json"]
|
||||
BasePkgManager.__init__(
|
||||
self,
|
||||
join(util.get_home_dir(), "platforms"),
|
||||
["http://dl.platformio.org/platforms/manifest.json"]
|
||||
)
|
||||
self, package_dir or PLATFORMS_DIR, repositories)
|
||||
|
||||
@property
|
||||
def manifest_name(self):
|
||||
@ -84,7 +84,7 @@ class PlatformManager(BasePkgManager):
|
||||
deppkgs[pkgname] = set()
|
||||
deppkgs[pkgname].add(pkgmanifest['version'])
|
||||
|
||||
pm = PackageManager(PACKAGE_DIR)
|
||||
pm = PackageManager(PACKAGES_DIR)
|
||||
for manifest in pm.get_installed():
|
||||
if manifest['name'] not in names:
|
||||
continue
|
||||
@ -315,7 +315,7 @@ class PlatformBase(PlatformPackagesMixin, PlatformRunMixin):
|
||||
self._manifest = util.load_json(manifest_path)
|
||||
|
||||
self.pm = PackageManager(
|
||||
PACKAGE_DIR, self._manifest.get("packageRepositories"))
|
||||
PACKAGES_DIR, self._manifest.get("packageRepositories"))
|
||||
|
||||
self._verbose = False
|
||||
|
||||
|
Reference in New Issue
Block a user