Handle PlatformIO's "on_exit" event

This commit is contained in:
Ivan Kravets
2023-06-19 14:24:47 +03:00
parent 292dc3fd71
commit 3a230dfb51
3 changed files with 17 additions and 8 deletions

View File

@ -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

View File

@ -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:

View File

@ -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()