diff options
Diffstat (limited to 'mingling_core')
| -rw-r--r-- | mingling_core/src/program/hook.rs | 5 | ||||
| -rw-r--r-- | 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<Enum = C>, { fn setup(&mut self, program: &mut crate::Program<C>) { - program - .with_hook_anonymous(ProgramAnonymousHook::empty().on_finish(current_exit_code)); + program.with_hook_anonymous(ProgramAnonymousHook::empty().on_finish(current_exit_code)); } } |
