From c86f25f5628d45e86817f3b2549ac8f024cd854c Mon Sep 17 00:00:00 2001 From: chris Date: Mon, 19 Jul 2021 12:38:44 +0200 Subject: [PATCH] add -q parameter to query --- promcli.py | 38 +++++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/promcli.py b/promcli.py index ebf0ddc..9897e9f 100644 --- a/promcli.py +++ b/promcli.py @@ -9,7 +9,7 @@ from tabulate import tabulate from prompt_toolkit import print_formatted_text as print from prompt_toolkit import HTML from prompt_toolkit import prompt -from prompt_toolkit.completion import ThreadedCompleter, FuzzyWordCompleter +from prompt_toolkit.completion import FuzzyWordCompleter from prompt_toolkit.lexers import PygmentsLexer from prompt_toolkit.styles import style_from_pygments_cls from pygments.lexers.promql import PromQLLexer @@ -77,24 +77,28 @@ def cli(ctx, user, password, promhost, use_netrc): @cli.command() +@click.option("-q", "--query") @click.pass_context -def query(ctx): +def query(ctx, query): promclio = ctx.obj['promcli'] - query = prompt( - "query: ", - completer=FuzzyWordCompleter(promclio.get_series()), - lexer=PygmentsLexer(PromQLLexer), - style=style_from_pygments_cls(SolarizedLightStyle), - ) - params = prompt( - "{ ", - completer=FuzzyWordCompleter(promclio.get_labels(query)), - complete_in_thread=True, - lexer=PygmentsLexer(PromQLLexer), - style=style_from_pygments_cls(SolarizedLightStyle), - ) - print(HTML(f"Querying {query}{{{params}}}")) - print(promclio.format_query(promclio.get_query(f"{query}{{{params}}}"))) + if not query: + query = prompt( + "query: ", + completer=FuzzyWordCompleter(promclio.get_series()), + lexer=PygmentsLexer(PromQLLexer), + style=style_from_pygments_cls(SolarizedLightStyle), + ) + if '{' not in query: + params = prompt( + "{ ", + completer=FuzzyWordCompleter(promclio.get_labels(query)), + complete_in_thread=True, + lexer=PygmentsLexer(PromQLLexer), + style=style_from_pygments_cls(SolarizedLightStyle), + ) + query = f"{query}{{{params}}}" + print(HTML(f"Querying {query}")) + print(promclio.format_query(promclio.get_query(f"{query}"))) @cli.command()