searcherside/infrastructure/archive/zip.go
Peter Kurfer 9ea9a8f658
Some checks failed
Go build / build (push) Failing after 1m58s
feat: continue basic setup
- setup ent scheme
- add command to create users
- document API
- add helpers to create migrations
- add command to run migrations
- add basic compose file
2024-06-19 21:19:37 +02:00

33 lines
539 B
Go

package archive
import (
"archive/zip"
"errors"
"io"
)
func WalkZipFile(filePath string, fn func(name string, r io.Reader) error) (err error) {
zf, err := zip.OpenReader(filePath)
if err != nil {
return err
}
defer func() {
err = errors.Join(err, zf.Close())
}()
for _, f := range zf.File {
if fr, err := f.Open(); err != nil {
return err
} else {
if err := fn(f.Name, fr); err != nil {
return errors.Join(err, fr.Close())
}
if err := fr.Close(); err != nil {
return err
}
}
}
return nil
}