mirror of
https://github.com/platformio/platformio-core.git
synced 2025-07-30 01:57:13 +02:00
Improve support for dependency with scp-like syntax
This commit is contained in:
@ -265,6 +265,8 @@ class PlatformPackagesMixin(object):
|
|||||||
not (skip_default_package or opts.get("optional", False))):
|
not (skip_default_package or opts.get("optional", False))):
|
||||||
if self.is_valid_requirements(version):
|
if self.is_valid_requirements(version):
|
||||||
self.pm.install(name, version, silent=silent)
|
self.pm.install(name, version, silent=silent)
|
||||||
|
elif version.startswith("git@"):
|
||||||
|
self.pm.install(version, silent=silent)
|
||||||
else:
|
else:
|
||||||
requirements = None
|
requirements = None
|
||||||
if "@" in version:
|
if "@" in version:
|
||||||
@ -294,7 +296,7 @@ class PlatformPackagesMixin(object):
|
|||||||
def update_packages(self, only_check=False):
|
def update_packages(self, only_check=False):
|
||||||
for name, manifest in self.get_installed_packages().items():
|
for name, manifest in self.get_installed_packages().items():
|
||||||
version = self.packages[name].get("version", "")
|
version = self.packages[name].get("version", "")
|
||||||
if "@" in version:
|
if "@" in version and not version.startswith("git@"):
|
||||||
_, version = version.rsplit("@", 1)
|
_, version = version.rsplit("@", 1)
|
||||||
self.pm.update(manifest['__pkg_dir'], version, only_check)
|
self.pm.update(manifest['__pkg_dir'], version, only_check)
|
||||||
|
|
||||||
@ -309,7 +311,7 @@ class PlatformPackagesMixin(object):
|
|||||||
def are_outdated_packages(self):
|
def are_outdated_packages(self):
|
||||||
for name, manifest in self.get_installed_packages().items():
|
for name, manifest in self.get_installed_packages().items():
|
||||||
version = self.packages[name].get("version", "")
|
version = self.packages[name].get("version", "")
|
||||||
if "@" in version:
|
if "@" in version and not version.startswith("git@"):
|
||||||
_, version = version.rsplit("@", 1)
|
_, version = version.rsplit("@", 1)
|
||||||
if self.pm.outdated(manifest['__pkg_dir'], version):
|
if self.pm.outdated(manifest['__pkg_dir'], version):
|
||||||
return True
|
return True
|
||||||
@ -329,11 +331,11 @@ class PlatformPackagesMixin(object):
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def is_valid_requirements(requirements):
|
def is_valid_requirements(requirements):
|
||||||
return requirements and "://" not in requirements
|
return requirements and ":" not in requirements
|
||||||
|
|
||||||
def _parse_pkg_input(self, name, version):
|
def _parse_pkg_input(self, name, version):
|
||||||
requirements = None
|
requirements = None
|
||||||
if "@" in version:
|
if "@" in version and not version.startswith("git@"):
|
||||||
version, requirements = version.rsplit("@", 1)
|
version, requirements = version.rsplit("@", 1)
|
||||||
return self.pm.parse_pkg_input("%s=%s" % (name, version), requirements)
|
return self.pm.parse_pkg_input("%s=%s" % (name, version), requirements)
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user