From 1c20efe9d12962e2e29d72192bf27795b88181b4 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Wed, 22 Nov 2017 21:38:14 +0200 Subject: [PATCH] Improve support for dependency with scp-like syntax --- platformio/managers/platform.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/platformio/managers/platform.py b/platformio/managers/platform.py index 32407a05..9c26a1d7 100644 --- a/platformio/managers/platform.py +++ b/platformio/managers/platform.py @@ -265,6 +265,8 @@ class PlatformPackagesMixin(object): not (skip_default_package or opts.get("optional", False))): if self.is_valid_requirements(version): self.pm.install(name, version, silent=silent) + elif version.startswith("git@"): + self.pm.install(version, silent=silent) else: requirements = None if "@" in version: @@ -294,7 +296,7 @@ class PlatformPackagesMixin(object): def update_packages(self, only_check=False): for name, manifest in self.get_installed_packages().items(): version = self.packages[name].get("version", "") - if "@" in version: + if "@" in version and not version.startswith("git@"): _, version = version.rsplit("@", 1) self.pm.update(manifest['__pkg_dir'], version, only_check) @@ -309,7 +311,7 @@ class PlatformPackagesMixin(object): def are_outdated_packages(self): for name, manifest in self.get_installed_packages().items(): version = self.packages[name].get("version", "") - if "@" in version: + if "@" in version and not version.startswith("git@"): _, version = version.rsplit("@", 1) if self.pm.outdated(manifest['__pkg_dir'], version): return True @@ -329,11 +331,11 @@ class PlatformPackagesMixin(object): @staticmethod def is_valid_requirements(requirements): - return requirements and "://" not in requirements + return requirements and ":" not in requirements def _parse_pkg_input(self, name, version): requirements = None - if "@" in version: + if "@" in version and not version.startswith("git@"): version, requirements = version.rsplit("@", 1) return self.pm.parse_pkg_input("%s=%s" % (name, version), requirements)