mirror of
https://github.com/platformio/platformio-core.git
synced 2025-07-31 02:27:13 +02:00
Refactored "base" paltform
This commit is contained in:
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
from click import argument, command, option, secho
|
from click import argument, command, option, secho
|
||||||
|
|
||||||
from platformio.platforms._base import PlatformFactory
|
from platformio.platforms.base import PlatformFactory
|
||||||
|
|
||||||
|
|
||||||
@command("install", short_help="Install new platforms")
|
@command("install", short_help="Install new platforms")
|
||||||
|
@ -9,7 +9,7 @@ from platformio.pkgmanager import PackageManager
|
|||||||
@command("list", short_help="List installed platforms")
|
@command("list", short_help="List installed platforms")
|
||||||
def cli():
|
def cli():
|
||||||
|
|
||||||
for name, pkgs in PackageManager.get_installed().iteritems():
|
for name, pkgs in PackageManager.get_installed().items():
|
||||||
echo("{name:<20} with packages: {pkgs}".format(
|
echo("{name:<20} with packages: {pkgs}".format(
|
||||||
name=style(name, fg="cyan"),
|
name=style(name, fg="cyan"),
|
||||||
pkgs=", ".join(pkgs.keys())
|
pkgs=", ".join(pkgs.keys())
|
||||||
|
@ -5,7 +5,7 @@ from click import command, echo, option, secho, style
|
|||||||
|
|
||||||
from platformio.exception import (InvalidEnvName, ProjectEnvsNotAvaialable,
|
from platformio.exception import (InvalidEnvName, ProjectEnvsNotAvaialable,
|
||||||
UndefinedEnvPlatform, UnknownEnvNames)
|
UndefinedEnvPlatform, UnknownEnvNames)
|
||||||
from platformio.platforms._base import PlatformFactory
|
from platformio.platforms.base import PlatformFactory
|
||||||
from platformio.util import get_project_config
|
from platformio.util import get_project_config
|
||||||
|
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
from click import argument, command, echo, style
|
from click import argument, command, echo, style
|
||||||
|
|
||||||
from platformio.platforms._base import PlatformFactory
|
from platformio.platforms.base import PlatformFactory
|
||||||
from platformio.util import get_platforms
|
from platformio.util import get_platforms
|
||||||
|
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@ from click import argument, command, echo, style
|
|||||||
|
|
||||||
from platformio.exception import PlatformNotInstalledYet
|
from platformio.exception import PlatformNotInstalledYet
|
||||||
from platformio.pkgmanager import PackageManager
|
from platformio.pkgmanager import PackageManager
|
||||||
from platformio.platforms._base import PlatformFactory
|
from platformio.platforms.base import PlatformFactory
|
||||||
|
|
||||||
|
|
||||||
@command("show", short_help="Show details about an installed platforms")
|
@command("show", short_help="Show details about an installed platforms")
|
||||||
@ -22,7 +22,7 @@ def cli(platform):
|
|||||||
info=p.get_short_info()))
|
info=p.get_short_info()))
|
||||||
|
|
||||||
pm = PackageManager(platform)
|
pm = PackageManager(platform)
|
||||||
for name, data in pm.get_installed(platform).iteritems():
|
for name, data in pm.get_installed(platform).items():
|
||||||
echo("----------")
|
echo("----------")
|
||||||
echo("Package: %s" % style(name, fg="yellow"))
|
echo("Package: %s" % style(name, fg="yellow"))
|
||||||
echo("Location: %s" % join(pm.get_platform_dir(), data['path']))
|
echo("Location: %s" % join(pm.get_platform_dir(), data['path']))
|
||||||
|
@ -5,7 +5,7 @@ from click import argument, command, secho
|
|||||||
|
|
||||||
from platformio.exception import PlatformNotInstalledYet
|
from platformio.exception import PlatformNotInstalledYet
|
||||||
from platformio.pkgmanager import PackageManager
|
from platformio.pkgmanager import PackageManager
|
||||||
from platformio.platforms._base import PlatformFactory
|
from platformio.platforms.base import PlatformFactory
|
||||||
|
|
||||||
|
|
||||||
@command("uninstall", short_help="Uninstall platforms")
|
@command("uninstall", short_help="Uninstall platforms")
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
from click import command, echo, style
|
from click import command, echo, style
|
||||||
|
|
||||||
from platformio.pkgmanager import PackageManager
|
from platformio.pkgmanager import PackageManager
|
||||||
from platformio.platforms._base import PlatformFactory
|
from platformio.platforms.base import PlatformFactory
|
||||||
|
|
||||||
|
|
||||||
@command("update", short_help="Update installed platforms")
|
@command("update", short_help="Update installed platforms")
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
from os.path import join
|
from os.path import join
|
||||||
|
|
||||||
from platformio.platforms._base import BasePlatform
|
from platformio.platforms.base import BasePlatform
|
||||||
|
|
||||||
|
|
||||||
class AtmelavrPlatform(BasePlatform):
|
class AtmelavrPlatform(BasePlatform):
|
||||||
|
@ -40,30 +40,55 @@ class BasePlatform(object):
|
|||||||
else:
|
else:
|
||||||
raise NotImplementedError()
|
raise NotImplementedError()
|
||||||
|
|
||||||
def install(self, with_packages, without_packages):
|
def get_pkgname_by_alias(self, alias):
|
||||||
requirements = []
|
for name, opts in self.PACKAGES.items():
|
||||||
pm = PackageManager(self.get_name())
|
if opts.get("alias", None) == alias:
|
||||||
|
return name
|
||||||
|
return None
|
||||||
|
|
||||||
upkgs = set(with_packages + without_packages)
|
def install(self, with_packages, without_packages, skip_default_packages):
|
||||||
|
with_packages = set(with_packages)
|
||||||
|
without_packages = set(without_packages)
|
||||||
|
|
||||||
|
upkgs = with_packages | without_packages
|
||||||
ppkgs = set(self.PACKAGES.keys())
|
ppkgs = set(self.PACKAGES.keys())
|
||||||
if not upkgs.issubset(ppkgs):
|
unknown = upkgs - ppkgs
|
||||||
raise UnknownPackage(", ".join(upkgs - ppkgs))
|
if unknown:
|
||||||
|
_unknown = unknown.copy()
|
||||||
|
# maybe aliases
|
||||||
|
for alias in unknown:
|
||||||
|
pkgname = self.get_pkgname_by_alias(alias)
|
||||||
|
if pkgname not in self.PACKAGES:
|
||||||
|
continue
|
||||||
|
if alias in with_packages:
|
||||||
|
with_packages.discard(alias)
|
||||||
|
with_packages.add(pkgname)
|
||||||
|
if alias in without_packages:
|
||||||
|
without_packages.discard(alias)
|
||||||
|
without_packages.add(pkgname)
|
||||||
|
_unknown.discard(alias)
|
||||||
|
|
||||||
for name, opts in self.PACKAGES.iteritems():
|
if _unknown:
|
||||||
|
raise UnknownPackage(", ".join(_unknown))
|
||||||
|
|
||||||
|
requirements = []
|
||||||
|
for name, opts in self.PACKAGES.items():
|
||||||
if name in without_packages:
|
if name in without_packages:
|
||||||
continue
|
continue
|
||||||
elif name in with_packages or opts["default"]:
|
elif (name in with_packages or (not skip_default_packages and
|
||||||
requirements.append((name, opts["path"]))
|
opts['default'])):
|
||||||
|
requirements.append((name, opts['path']))
|
||||||
|
|
||||||
|
pm = PackageManager(self.get_name())
|
||||||
for (package, path) in requirements:
|
for (package, path) in requirements:
|
||||||
pm.install(package, path)
|
pm.install(package, path)
|
||||||
return True
|
return len(requirements)
|
||||||
|
|
||||||
def uninstall(self):
|
def uninstall(self):
|
||||||
platform = self.get_name()
|
platform = self.get_name()
|
||||||
pm = PackageManager(platform)
|
pm = PackageManager(platform)
|
||||||
|
|
||||||
for package, data in pm.get_installed(platform).iteritems():
|
for package, data in pm.get_installed(platform).items():
|
||||||
pm.uninstall(package, data['path'])
|
pm.uninstall(package, data['path'])
|
||||||
|
|
||||||
pm.unregister_platform(platform)
|
pm.unregister_platform(platform)
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
from os.path import join
|
from os.path import join
|
||||||
|
|
||||||
from platformio.platforms._base import BasePlatform
|
from platformio.platforms.base import BasePlatform
|
||||||
|
|
||||||
|
|
||||||
class Timsp430Platform(BasePlatform):
|
class Timsp430Platform(BasePlatform):
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
from os.path import join
|
from os.path import join
|
||||||
|
|
||||||
from platformio.platforms._base import BasePlatform
|
from platformio.platforms.base import BasePlatform
|
||||||
|
|
||||||
|
|
||||||
class TitivaPlatform(BasePlatform):
|
class TitivaPlatform(BasePlatform):
|
||||||
|
Reference in New Issue
Block a user