[mirror] Scalable static site server for Git forges (like GitHub Pages)

Improve error handling in `CollectTar`.

Changed files
+12 -6
src
+9 -5
src/collect.go
··· 26 26 case Transform_Zstd: 27 27 data, err = zstdDecoder.DecodeAll(data, []byte{}) 28 28 if err != nil { 29 - return err 29 + return fmt.Errorf("zstd: %s: %w", header.Name, err) 30 30 } 31 31 default: 32 - return fmt.Errorf("unexpected transform") 32 + return fmt.Errorf("%s: unexpected transform", header.Name) 33 33 } 34 34 header.Size = int64(len(data)) 35 35 36 36 err = archive.WriteHeader(header) 37 37 if err != nil { 38 - return 38 + return fmt.Errorf("tar: %w", err) 39 39 } 40 40 _, err = archive.Write(data) 41 + if err != nil { 42 + return fmt.Errorf("tar: %w", err) 43 + } 41 44 return 42 45 } 43 46 ··· 82 85 err = appendFile(&header, entry.GetData(), Transform_Identity) 83 86 84 87 default: 85 - return fmt.Errorf("unexpected entry type") 88 + panic(fmt.Errorf("CollectTar encountered invalid entry: %v, %v", 89 + entry.GetType(), entry.GetTransform())) 86 90 } 87 91 if err != nil { 88 92 return err ··· 115 119 116 120 err = archive.Flush() 117 121 if err != nil { 118 - return err 122 + return fmt.Errorf("tar: %w", err) 119 123 } 120 124 121 125 flusher, ok := writer.(Flusher)
+3 -1
src/main.go
··· 314 314 if err != nil { 315 315 logc.Fatalln(ctx, err) 316 316 } 317 - CollectTar(ctx, fileOutputArg(), manifest, metadata) 317 + if err = CollectTar(ctx, fileOutputArg(), manifest, metadata); err != nil { 318 + logc.Fatalln(ctx, err) 319 + } 318 320 319 321 case *updateSite != "": 320 322 if backend, err = CreateBackend(&config.Storage); err != nil {