Skip to content

Commit

Permalink
Improve updating of development platforms
Browse files Browse the repository at this point in the history
  • Loading branch information
ivankravets committed Aug 5, 2016
1 parent dad8f9d commit e9ed55b
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 10 deletions.
3 changes: 1 addition & 2 deletions Makefile
Expand Up @@ -5,12 +5,11 @@ lint:
isort:
isort -rc ./platformio
isort -rc ./tests
isort -rc ./scripts

yapf:
yapf --recursive --in-place platformio/

before-commit: isort yapf pylint
before-commit: isort yapf lint

clean-docs:
rm -rf docs/_build
Expand Down
2 changes: 1 addition & 1 deletion platformio/__init__.py
Expand Up @@ -14,7 +14,7 @@

import sys

VERSION = (3, 0, "0.dev19")
VERSION = (3, 0, "0.dev20")
__version__ = ".".join([str(s) for s in VERSION])

__title__ = "platformio"
Expand Down
1 change: 1 addition & 0 deletions platformio/managers/package.py
Expand Up @@ -522,6 +522,7 @@ def update(self, name, requirements=None, only_check=False):
click.echo("[%s]" % (click.style("Out-of-date", fg="red")))
if only_check:
return
self.uninstall(name, manifest['version'], trigger_event=False)
self.install(name, latest_version, trigger_event=False)

telemetry.on_event(
Expand Down
16 changes: 9 additions & 7 deletions platformio/managers/platform.py
Expand Up @@ -43,7 +43,8 @@ def manifest_name(self):
return "platform.json"

def install(self, # pylint: disable=too-many-arguments,arguments-differ
name, requirements=None, with_packages=None,
name, requirements=None, quiet=False,
trigger_event=True, with_packages=None,
without_packages=None, skip_default_package=False):
platform_dir = BasePkgManager.install(self, name, requirements)
p = PlatformFactory.newPlatform(self.get_manifest_path(platform_dir))
Expand All @@ -52,12 +53,14 @@ def install(self, # pylint: disable=too-many-arguments,arguments-differ
self.cleanup_packages(p.packages.keys())
return True

def uninstall( # pylint: disable=arguments-differ
self, name, requirements=None):
def uninstall(self, name, requirements=None, trigger_event=True):
name, requirements, _ = self.parse_pkg_name(name, requirements)
p = PlatformFactory.newPlatform(name, requirements)
BasePkgManager.uninstall(self, name, requirements)
self.cleanup_packages(p.packages.keys())
# trigger event is disabled when upgrading operation
# don't cleanup packages, "install" will do that
if trigger_event:
self.cleanup_packages(p.packages.keys())
return True

def update(self, # pylint: disable=arguments-differ
Expand All @@ -67,7 +70,6 @@ def update(self, # pylint: disable=arguments-differ
BasePkgManager.update(self, name, requirements, only_check)
p = PlatformFactory.newPlatform(name, requirements)
p.update_packages(only_check)
self.cleanup_packages(p.packages.keys())
return True

def is_outdated(self, name, requirements=None):
Expand Down Expand Up @@ -137,13 +139,13 @@ def load_module(name, path):

@classmethod
def newPlatform(cls, name, requirements=None):
if not requirements and "@" in name:
name, requirements = name.rsplit("@", 1)
platform_dir = None
if name.endswith("platform.json") and isfile(name):
platform_dir = dirname(name)
name = util.load_json(name)['name']
else:
if not requirements and "@" in name:
name, requirements = name.rsplit("@", 1)
platform_dir = PlatformManager().get_installed_dir(name,
requirements)

Expand Down

0 comments on commit e9ed55b

Please sign in to comment.