Skip to content
This repository was archived by the owner on Jun 26, 2024. It is now read-only.

Commit e6516c6

Browse files
authored
✨ Support GZip without Tarball (#79)
1 parent c718d35 commit e6516c6

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

program/archive.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ type Archive struct {
3030
const (
3131
archiveTarSuffix = ".tar"
3232
archiveTarGzSuffix = ".tar.gz"
33+
archiveGzSuffix = ".gz"
3334
archiveZipSuffix = ".zip"
3435
)
3536

@@ -75,6 +76,8 @@ func (a *Archive) extractBinaryNoChecksum(binaryName string) ([]byte, error) {
7576
err = untar(&buf, r, binaryName)
7677
case strings.HasSuffix(a.Name, archiveTarGzSuffix):
7778
err = untargz(&buf, r, binaryName)
79+
case strings.HasSuffix(a.Name, archiveGzSuffix):
80+
err = ungz(&buf, r, binaryName)
7881
default:
7982
// assume currently downloaded file is the binary
8083
data = a.Data

program/archive_deflate.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,3 +82,14 @@ func untargz(w io.Writer, rawTarGz io.Reader, binaryName string) error {
8282

8383
return untar(w, gzReader, binaryName)
8484
}
85+
86+
func ungz(w io.Writer, rawGz io.Reader, binaryName string) error {
87+
gzReader, err := gzip.NewReader(rawGz)
88+
if err != nil {
89+
return err
90+
}
91+
defer gzReader.Close()
92+
93+
_, err = io.Copy(w, gzReader)
94+
return err
95+
}

0 commit comments

Comments
 (0)