diff options
| author | Ophestra <cat@gensokyo.uk> | 2026-01-07 21:36:47 +0900 |
|---|---|---|
| committer | Ophestra <cat@gensokyo.uk> | 2026-01-07 21:36:47 +0900 |
| commit | e8dda70c417a78647ae31930acc0a98ecf5ad097 (patch) | |
| tree | 1993e74d929cd9494f9abf593d7e9b07ec253b3a /internal/pkg/tar.go | |
| parent | 7ea4e8b643dbe4931e3cb3072d180ee066a28dd1 (diff) | |
internal/pkg: return reader for files
This improves efficiency for cache hits.
Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal/pkg/tar.go')
| -rw-r--r-- | internal/pkg/tar.go | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/internal/pkg/tar.go b/internal/pkg/tar.go index 33f26f3a..240a3980 100644 --- a/internal/pkg/tar.go +++ b/internal/pkg/tar.go @@ -2,7 +2,6 @@ package pkg import ( "archive/tar" - "bytes" "compress/bzip2" "compress/gzip" "context" @@ -78,12 +77,17 @@ func (a *tarArtifact) Cure(c *CureContext) (err error) { var tr io.ReadCloser { - var data []byte - data, err = c.LoadData(a.f) - if err != nil { + + if tr, err = c.OpenFile(a.f); err != nil { return } - tr = io.NopCloser(bytes.NewReader(data)) + defer func(f io.ReadCloser) { + closeErr := f.Close() + if err == nil { + err = closeErr + } + }(tr) + tr = io.NopCloser(tr) } defer func() { |
