From 2b3843c7c0680a2e6edd31e0ce85cf5a25d56f78 Mon Sep 17 00:00:00 2001 From: JT <547158+jntrnr@users.noreply.github.com> Date: Thu, 10 Mar 2022 07:32:46 -0500 Subject: [PATCH] ensure exit codes in more cases (#4804) --- crates/nu-protocol/src/pipeline_data.rs | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/crates/nu-protocol/src/pipeline_data.rs b/crates/nu-protocol/src/pipeline_data.rs index cb6f166407..b5db072d52 100644 --- a/crates/nu-protocol/src/pipeline_data.rs +++ b/crates/nu-protocol/src/pipeline_data.rs @@ -93,9 +93,20 @@ impl PipelineData { vals: s.collect(), span, // FIXME? }, - PipelineData::ExternalStream { stdout: None, .. } => Value::Nothing { span }, + PipelineData::ExternalStream { + stdout: None, + exit_code, + .. + } => { + // Make sure everything has finished + if let Some(exit_code) = exit_code { + let _: Vec<_> = exit_code.into_iter().collect(); + } + Value::Nothing { span } + } PipelineData::ExternalStream { stdout: Some(mut s), + exit_code, .. } => { let mut items = vec![]; @@ -111,6 +122,11 @@ impl PipelineData { } } + // Make sure everything has finished + if let Some(exit_code) = exit_code { + let _: Vec<_> = exit_code.into_iter().collect(); + } + if s.is_binary { let mut output = vec![]; for item in items {