From 3a230dfb51e3700e405561bcafae5534ac5da509 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Mon, 19 Jun 2023 14:24:47 +0300 Subject: [PATCH] Handle PlatformIO's "on_exit" event --- platformio/__main__.py | 10 ++++++++-- platformio/maintenance.py | 11 +++++++---- platformio/telemetry.py | 4 ++-- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/platformio/__main__.py b/platformio/__main__.py index acc50ad8..909a0260 100644 --- a/platformio/__main__.py +++ b/platformio/__main__.py @@ -53,7 +53,13 @@ def cli(ctx, force, caller, no_ansi): # pylint: disable=unused-argument except: # pylint: disable=bare-except pass - maintenance.on_platformio_start(ctx, caller) + maintenance.on_cmd_start(ctx, caller) + + +@cli.result_callback() +@click.pass_context +def process_result(*_, **__): + maintenance.on_cmd_end() def configure(): @@ -125,7 +131,7 @@ An unexpected error occurred. Further steps: click.secho(error_str, fg="red", err=True) exit_code = int(str(exc)) if str(exc).isdigit() else 1 - maintenance.on_platformio_end() + maintenance.on_platformio_exit() sys.argv = prev_sys_argv return exit_code diff --git a/platformio/maintenance.py b/platformio/maintenance.py index 936a0d86..174f1f96 100644 --- a/platformio/maintenance.py +++ b/platformio/maintenance.py @@ -29,17 +29,16 @@ from platformio.package.version import pepver_to_semver from platformio.system.prune import calculate_unnecessary_system_data -def on_platformio_start(ctx, caller): +def on_cmd_start(ctx, caller): app.set_session_var("command_ctx", ctx) set_caller(caller) - telemetry.on_platformio_start(ctx) + telemetry.on_cmd_start(ctx) if PlatformioCLI.in_silence(): return after_upgrade(ctx) -def on_platformio_end(): - telemetry.on_platformio_end() +def on_cmd_end(): if PlatformioCLI.in_silence(): return @@ -62,6 +61,10 @@ def on_platformio_exception(exc): telemetry.log_exception(exc) +def on_platformio_exit(): + telemetry.on_exit() + + def set_caller(caller=None): caller = caller or os.getenv("PLATFORMIO_CALLER") if not caller: diff --git a/platformio/telemetry.py b/platformio/telemetry.py index d288872a..820b1507 100644 --- a/platformio/telemetry.py +++ b/platformio/telemetry.py @@ -170,12 +170,12 @@ def log_event(name, params, instant_sending=False): TelemetryLogger().log_event(name, params, instant_sending=instant_sending) -def on_platformio_start(cmd_ctx): +def on_cmd_start(cmd_ctx): process_postponed_logs() log_command(cmd_ctx) -def on_platformio_end(): +def on_exit(): TelemetryLogger().send()