From 8f0712b3ad084c5a896d5c5e1e3c78e925b2247c Mon Sep 17 00:00:00 2001 From: Catherine Date: Thu, 4 Dec 2025 15:23:15 +0000 Subject: [PATCH] Improve error handling in `CollectTar`. --- src/collect.go | 14 +++++++++----- src/main.go | 4 +++- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/collect.go b/src/collect.go index 4c16f37..fec36cc 100644 --- a/src/collect.go +++ b/src/collect.go @@ -26,18 +26,21 @@ func CollectTar( case Transform_Zstd: data, err = zstdDecoder.DecodeAll(data, []byte{}) if err != nil { - return err + return fmt.Errorf("zstd: %s: %w", header.Name, err) } default: - return fmt.Errorf("unexpected transform") + return fmt.Errorf("%s: unexpected transform", header.Name) } header.Size = int64(len(data)) err = archive.WriteHeader(header) if err != nil { - return + return fmt.Errorf("tar: %w", err) } _, err = archive.Write(data) + if err != nil { + return fmt.Errorf("tar: %w", err) + } return } @@ -82,7 +85,8 @@ func CollectTar( err = appendFile(&header, entry.GetData(), Transform_Identity) default: - return fmt.Errorf("unexpected entry type") + panic(fmt.Errorf("CollectTar encountered invalid entry: %v, %v", + entry.GetType(), entry.GetTransform())) } if err != nil { return err @@ -115,7 +119,7 @@ func CollectTar( err = archive.Flush() if err != nil { - return err + return fmt.Errorf("tar: %w", err) } flusher, ok := writer.(Flusher) diff --git a/src/main.go b/src/main.go index d365fac..5c304a7 100644 --- a/src/main.go +++ b/src/main.go @@ -314,7 +314,9 @@ func Main() { if err != nil { logc.Fatalln(ctx, err) } - CollectTar(ctx, fileOutputArg(), manifest, metadata) + if err = CollectTar(ctx, fileOutputArg(), manifest, metadata); err != nil { + logc.Fatalln(ctx, err) + } case *updateSite != "": if backend, err = CreateBackend(&config.Storage); err != nil {