From 15aa0c7c770c4ff2378905c0998f23480e32d548 Mon Sep 17 00:00:00 2001 From: Lavish Pal Date: Tue, 2 Jun 2026 04:28:35 +0530 Subject: [PATCH] Add support for gzip-compressed CPIO output Signed-off-by: Lavish Pal --- internal/cli/build-cpio.go | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/internal/cli/build-cpio.go b/internal/cli/build-cpio.go index fef620249..ad6c057d5 100644 --- a/internal/cli/build-cpio.go +++ b/internal/cli/build-cpio.go @@ -15,10 +15,13 @@ package cli import ( + "compress/gzip" "context" "fmt" + "io" "os" "runtime" + "strings" "github.com/spf13/cobra" @@ -109,8 +112,15 @@ func BuildCPIOCmd(ctx context.Context, dest string, opts ...build.Option) error } defer f.Close() - // TODO(mattmoor): Consider wrapping in a gzip writer if the filename - // ends in .gz + // Use a gzip-compressed writer when the output filename ends with .gz. + var w io.Writer = f - return cpio.FromLayer(layer, f) + if strings.HasSuffix(dest, ".gz") { + gzw := gzip.NewWriter(f) + defer gzw.Close() + + w = gzw + } + + return cpio.FromLayer(layer, w) }