command: Split up run() method#1459
Merged
cgwalters merged 1 commit intobootc-dev:mainfrom Jul 30, 2025
Merged
Conversation
Contributor
There was a problem hiding this comment.
Code Review
This pull request refactors the command execution helpers by splitting the generic run() method into run_inherited() and run_capture_stderr() for more explicit control over subprocess stream handling. The changes are applied consistently across the codebase. My review focuses on ensuring the new API is consistent and the documentation is accurate. I've found a few areas for improvement in crates/utils/src/command.rs regarding API consistency for asynchronous commands and documentation accuracy.
fa5c8fa to
9e40c48
Compare
There really isn't any kind of single default way to run a subprocess, that's why it's tricky. Sometimes one wants to have them be async, sometimes synchronous. Sometimes one wants to capture stdout, other times not etc. The `run()` name implies it's a default but it can't really be because some use cases we really do want to directly copy stderr instead of capturing it. It happens that *most* cases here inside bootc we're fine to only show stderr on error I think; I only changed the editor case to use the new `run_inherited()`. But in contrast many use cases in e.g. coreos/rpm-ostree#5439 wanted `run_inherited()`. Unit tests: Assisted-by: Claude Code Signed-off-by: Colin Walters <walters@verbum.org>
9e40c48 to
634e038
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
There really isn't any kind of single default way to run a subprocess, that's why it's tricky. Sometimes one wants to have them be async, sometimes synchronous. Sometimes one wants to capture stdout, other times not etc.
The
run()name implies it's a default but it can't really be because some use cases we really do want to directly copy stderr instead of capturing it.It happens that most cases here inside bootc we're fine to only show stderr on error I think; I only changed the editor case to use the new
run_inherited().But in contrast many use cases in e.g.
coreos/rpm-ostree#5439
wanted
run_inherited().Unit tests: Assisted-by: Claude Code