From 485ba196013b72197bf255b748cdcb01e05e1d66 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Wed, 5 Oct 2016 15:46:04 +0300 Subject: [PATCH] Add package requirements for PIO Plus --- platformio/pioplus.py | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/platformio/pioplus.py b/platformio/pioplus.py index 4d91550d..522970a9 100644 --- a/platformio/pioplus.py +++ b/platformio/pioplus.py @@ -20,7 +20,10 @@ from platform import system from platformio import exception, util from platformio.managers.package import PackageManager -PACKAGE_DEPS = {"pysite": "pysite-pioplus", "tool": "tool-pioplus"} +PACKAGE_DEPS = {"pysite": {"name": "pysite-pioplus", + "requirements": ">=0.1.0"}, + "tool": {"name": "tool-pioplus", + "requirements": ">=0.2.0"}} class PioPlusPackageManager(PackageManager): @@ -34,24 +37,29 @@ class PioPlusPackageManager(PackageManager): def pioplus_install(): pm = PioPlusPackageManager() - for name in PACKAGE_DEPS.values(): - pm.install(name, silent=True) + for item in PACKAGE_DEPS.values(): + pm.install(item['name'], item['requirements'], silent=True) def pioplus_update(): pm = PioPlusPackageManager() - for name in PACKAGE_DEPS.values(): - pm.update(name) + for item in PACKAGE_DEPS.values(): + package_dir = pm.get_package_dir(item['name'], item['requirements']) + if package_dir: + pm.update(item['name'], item['requirements']) def pioplus_call(args, **kwargs): pioplus_install() pm = PioPlusPackageManager() - pioplus_path = join(pm.get_package_dir(PACKAGE_DEPS['tool']), "pioplus") + pioplus_path = join( + pm.get_package_dir(PACKAGE_DEPS['tool']['name'], + PACKAGE_DEPS['tool']['requirements']), "pioplus") if system() == "Linux": os.environ['LD_LIBRARY_PATH'] = dirname(pioplus_path) os.environ['PYTHONEXEPATH'] = util.get_pythonexe_path() - os.environ['PYTHONPYSITEDIR'] = pm.get_package_dir(PACKAGE_DEPS['pysite']) + os.environ['PYTHONPYSITEDIR'] = pm.get_package_dir( + PACKAGE_DEPS['pysite']['name'], PACKAGE_DEPS['pysite']['requirements']) util.copy_pythonpath_to_osenv() if subprocess.call([pioplus_path] + args, **kwargs) != 0: raise exception.ReturnErrorCode()