Files
platformio-core/platformio/commands/search.py

42 lines
1.1 KiB
Python
Raw Normal View History

# Copyright (C) Ivan Kravets <me@ikravets.com>
# See LICENSE for details.
import json
2014-12-03 20:16:50 +02:00
import click
2014-07-30 22:40:11 +03:00
from platformio.platforms.base import PlatformFactory
2014-12-03 20:16:50 +02:00
@click.command("search", short_help="Search for development platforms")
@click.argument("query", required=False)
@click.option("--json-output", is_flag=True)
def cli(query, json_output):
data = []
platforms = PlatformFactory.get_platforms().keys()
platforms.sort()
for platform in platforms:
2014-12-03 20:16:50 +02:00
p = PlatformFactory.newPlatform(platform)
name = p.get_name()
info = p.get_short_info()
2014-11-22 23:55:17 +02:00
if query == "all":
query = ""
2015-03-11 20:45:31 +02:00
search_data = "%s %s %s" % (name, info, p.get_installed_packages())
2014-11-22 23:55:17 +02:00
if query and query.lower() not in search_data.lower():
continue
data.append({
"name": name,
"info": info
})
if json_output:
click.echo(json.dumps(data))
else:
for item in data:
click.echo("{name:<20} - {info}".format(
name=click.style(item['name'], fg="cyan"), info=item['info']))