Return value instead of stream from kill (#12480)

# Description
The `kill` command returns a stream with a single value. This PR changes
it to simply return the value.

# User-Facing Changes
Technically a breaking change.
This commit is contained in:
Ian Manske 2024-04-12 15:44:27 +00:00 committed by GitHub
parent 3eb9c2a565
commit 741e3c3d8f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -147,23 +147,21 @@ impl Command for Kill {
});
}
let val = String::from(
String::from_utf8(output.stdout)
.map_err(|e| ShellError::GenericError {
error: "failed to convert output to string".into(),
msg: e.to_string(),
span: Some(call.head),
help: None,
inner: vec![],
})?
.trim_end(),
);
if val.is_empty() {
let mut output =
String::from_utf8(output.stdout).map_err(|e| ShellError::GenericError {
error: "failed to convert output to string".into(),
msg: e.to_string(),
span: Some(call.head),
help: None,
inner: vec![],
})?;
output.truncate(output.trim_end().len());
if output.is_empty() {
Ok(Value::nothing(call.head).into_pipeline_data())
} else {
Ok(vec![Value::string(val, call.head)]
.into_iter()
.into_pipeline_data(engine_state.ctrlc.clone()))
Ok(Value::string(output, call.head).into_pipeline_data())
}
}