From 99d5a62aa3655f8676021a9bf70af3d12c9457bc Mon Sep 17 00:00:00 2001 From: 魏曹先生 <1992414357@qq.com> Date: Sat, 9 May 2026 17:48:03 +0800 Subject: Capture exit codes from anonymous hook finishes --- mingling_core/src/program/hook.rs | 5 ++++- mingling_core/src/program/setup/exit_code_control.rs | 3 +-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/mingling_core/src/program/hook.rs b/mingling_core/src/program/hook.rs index edbf996..a5c5d38 100644 --- a/mingling_core/src/program/hook.rs +++ b/mingling_core/src/program/hook.rs @@ -215,7 +215,10 @@ where } for anonymous_hook in &self.anonymous_hooks { if let Some(finish) = anonymous_hook.finish { - finish(); + exit_code = finish(); + if exit_code != 0 { + return exit_code; + } } } exit_code diff --git a/mingling_core/src/program/setup/exit_code_control.rs b/mingling_core/src/program/setup/exit_code_control.rs index a4a5a5c..20cd9b2 100644 --- a/mingling_core/src/program/setup/exit_code_control.rs +++ b/mingling_core/src/program/setup/exit_code_control.rs @@ -15,8 +15,7 @@ where C: ProgramCollect, { fn setup(&mut self, program: &mut crate::Program) { - program - .with_hook_anonymous(ProgramAnonymousHook::empty().on_finish(current_exit_code)); + program.with_hook_anonymous(ProgramAnonymousHook::empty().on_finish(current_exit_code)); } } -- cgit