Skip to content

Commit 2b617f8

Browse files
committed
lint
1 parent f9d2dcd commit 2b617f8

File tree

1 file changed

+24
-16
lines changed

1 file changed

+24
-16
lines changed

pkg/extract/extract.go

Lines changed: 24 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -93,36 +93,27 @@ func tarGz(file, target string) error {
9393

9494
tarReader := tar.NewReader(uncompressedStream)
9595

96-
for true {
96+
for {
9797
header, err := tarReader.Next()
9898

99-
if err == io.EOF {
99+
if errors.Is(err, io.EOF) {
100100
break
101101
}
102102

103103
if err != nil {
104-
return fmt.Errorf("extractTarGz: Next() failed: %s", err.Error())
104+
return fmt.Errorf("extractTarGz: Next() failed: %w", err)
105105
}
106106

107107
switch header.Typeflag {
108108
case tar.TypeDir:
109+
//nolint:gosec
109110
if err := os.MkdirAll(filepath.Join(target, header.Name), 0o755); err != nil {
110-
return fmt.Errorf("extractTarGz: Mkdir() failed: %s", err.Error())
111+
return fmt.Errorf("extractTarGz: Mkdir() failed: %w", err)
111112
}
112113
case tar.TypeReg:
113-
path := filepath.Join(target, header.Name)
114-
if err := os.MkdirAll(filepath.Dir(path), 0o755); err != nil {
115-
return fmt.Errorf("extractTarGz: Mkdir() failed: %s", err.Error())
116-
return fmt.Errorf("extractTarGz: Mkdir() failed: %s", err.Error())
117-
}
118-
outFile, err := os.Create(path)
119-
if err != nil {
120-
return fmt.Errorf("extractTarGz: Create() failed: %s", err.Error())
121-
}
122-
if _, err := io.Copy(outFile, tarReader); err != nil {
123-
return fmt.Errorf("extractTarGz: Copy() failed: %s", err.Error())
114+
if err := extractTarFile(target, header, tarReader); err != nil {
115+
return err
124116
}
125-
outFile.Close()
126117

127118
default:
128119
return fmt.Errorf("extractTarGz: uknown type: %d in %s",
@@ -133,6 +124,23 @@ func tarGz(file, target string) error {
133124
return nil
134125
}
135126

127+
func extractTarFile(target string, header *tar.Header, tarReader *tar.Reader) error {
128+
//nolint:gosec
129+
path := filepath.Join(target, header.Name)
130+
if err := os.MkdirAll(filepath.Dir(path), 0o755); err != nil {
131+
return fmt.Errorf("extractTarGz: Mkdir() failed: %w", err)
132+
}
133+
outFile, err := os.Create(path)
134+
if err != nil {
135+
return fmt.Errorf("extractTarGz: Create() failed: %w", err)
136+
}
137+
defer quietly.Close(outFile)
138+
if _, err := io.Copy(outFile, tarReader); err != nil {
139+
return fmt.Errorf("extractTarGz: Copy() failed: %w", err)
140+
}
141+
return nil
142+
}
143+
136144
func tarXz(file, target string) error {
137145
// Open a file
138146
f, err := os.Open(file)

0 commit comments

Comments
 (0)