def get_builtin_libs(storage_names=None): # pylint: disable=import-outside-toplevel from platformio.package.manager.library import LibraryPackageManager items = [] storage_names = storage_names or [] pm = PlatformPackageManager() for pkg in pm.get_installed(): p = PlatformFactory.new(pkg) for storage in p.get_lib_storages(): if storage_names and storage["name"] not in storage_names: continue lm = LibraryPackageManager(storage["path"]) items.append({ "name": storage["name"], "path": storage["path"], "items": lm.legacy_get_installed(), }) return items
def lib_list(ctx, json_output): storage_dirs = ctx.meta[CTX_META_STORAGE_DIRS_KEY] json_result = {} for storage_dir in storage_dirs: if not json_output: print_storage_header(storage_dirs, storage_dir) lm = LibraryPackageManager(storage_dir) items = lm.legacy_get_installed() if json_output: json_result[storage_dir] = items elif items: for item in sorted(items, key=lambda i: i["name"]): print_lib_item(item) else: click.echo("No items found") if json_output: return click.echo( dump_json_to_unicode( json_result[storage_dirs[0]] if len(storage_dirs) == 1 else json_result ) ) return True