internal/archive/tar_entries.go (21 lines of code) (raw):

package archive import ( "archive/tar" "errors" "io" ) // TarEntries interprets the given io.Reader as a tar archive, outputting a list // of filenames contained within it func TarEntries(r io.Reader) ([]string, error) { entries := []string{} tr := tar.NewReader(r) for { hdr, err := tr.Next() if errors.Is(err, io.EOF) { break } if err != nil { return nil, err } entries = append(entries, hdr.Name) } return entries, nil }