MCPcopy Create free account
hub / github.com/DeusData/codebase-memory-mcp / extractTarGz

Function extractTarGz

pkg/go/cmd/codebase-memory-mcp/main.go:261–292  ·  view source on GitHub ↗
(archivePath, destDir, targetFile string)

Source from the content-addressed store, hash-verified

259}
260
261func extractTarGz(archivePath, destDir, targetFile string) error {
262 f, err := os.Open(archivePath)
263 if err != nil {
264 return err
265 }
266 defer f.Close()
267 gz, err := gzip.NewReader(f)
268 if err != nil {
269 return err
270 }
271 defer gz.Close()
272 tr := tar.NewReader(gz)
273 for {
274 hdr, err := tr.Next()
275 if err == io.EOF {
276 break
277 }
278 if err != nil {
279 return err
280 }
281 if filepath.Base(hdr.Name) == targetFile {
282 out, err := os.Create(filepath.Join(destDir, targetFile))
283 if err != nil {
284 return err
285 }
286 defer out.Close()
287 _, err = io.Copy(out, tr) //nolint:gosec
288 return err
289 }
290 }
291 return fmt.Errorf("%s not found in archive", targetFile)
292}
293
294func extractZip(archivePath, destDir, targetFile string) error {
295 r, err := zip.OpenReader(archivePath)

Callers 1

downloadFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected