diff --git a/crates/nu-protocol/src/pipeline_data.rs b/crates/nu-protocol/src/pipeline_data.rs index cb6f16640..b5db072d5 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 {