diff --git a/piker/brokers/cli.py b/piker/brokers/cli.py index 9f1ee4fa..b1047b18 100644 --- a/piker/brokers/cli.py +++ b/piker/brokers/cli.py @@ -248,3 +248,24 @@ def symbol_info(config, tickers): brokermod.log.warn(f"Could not find symbol {ticker}?") click.echo(colorize_json(quotes)) + + +@cli.command() +@click.argument('pattern', required=True) +@click.pass_obj +def search(config, pattern): + """Search for symbols from broker backend(s). + """ + # global opts + brokermod = config['brokermod'] + + quotes = tractor.run( + partial(core.symbol_search, brokermod, pattern), + start_method='forkserver', + loglevel='info', + ) + if not quotes: + log.error(f"No matches could be found for {pattern}?") + return + + click.echo(colorize_json(quotes))