mirror of
https://github.com/apple/container.git
synced 2026-09-27 17:36:08 -04:00
Route container image save reference list to stderr in stdout mode (#1804)
- Fixes #1801. - When `container image save` runs without `--output`, stdout carries the OCI tar archive. The command writes the archive bytes to stdout and then `print(reference)`s each saved image reference to stdout afterward, appending non-archive text after the tar EOF marker, which will cause strict tar/OCI consumers to fail. - This routes the saved-reference list to stderr in the no-`--output` branch, so stdout contains only archive bytes. When saving to a file via `--output`, stdout is free, so the references continue to print to stdout exactly as before. Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
27acdbe2f8
commit
aa7fef3d1d
@@ -140,7 +140,15 @@ extension Application {
|
||||
|
||||
progress.finish()
|
||||
for reference in references {
|
||||
print(reference)
|
||||
if output == nil {
|
||||
// stdout is carrying the OCI archive in this branch, so the
|
||||
// saved-reference list goes to stderr via the logger. Printing
|
||||
// it to stdout appends non-archive bytes after the tar EOF and
|
||||
// corrupts the stream for redirection and pipelines (#1801).
|
||||
log.info("\(reference)")
|
||||
} else {
|
||||
print(reference)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user