MCPcopy
hub / github.com/wagoodman/dive / getFileList

Function getFileList

dive/image/docker/image_archive.go:221–248  ·  view source on GitHub ↗
(tarReader *tar.Reader)

Source from the content-addressed store, hash-verified

219}
220
221func getFileList(tarReader *tar.Reader) ([]filetree.FileInfo, error) {
222 var files []filetree.FileInfo
223
224 for {
225 header, err := tarReader.Next()
226 if err == io.EOF {
227 break
228 } else if err != nil {
229 return nil, err
230 }
231
232 // always ensure relative path notations are not parsed as part of the filename
233 name := path.Clean(header.Name)
234 if name == "." {
235 continue
236 }
237
238 switch header.Typeflag {
239 case tar.TypeXGlobalHeader:
240 return nil, fmt.Errorf("unexptected tar file: (XGlobalHeader): type=%v name=%s", header.Typeflag, name)
241 case tar.TypeXHeader:
242 return nil, fmt.Errorf("unexptected tar file (XHeader): type=%v name=%s", header.Typeflag, name)
243 default:
244 files = append(files, filetree.NewFileInfoFromTarHeader(tarReader, header, name))
245 }
246 }
247 return files, nil
248}
249
250func (img *ImageArchive) ToImage() (*image.Image, error) {
251 trees := make([]*filetree.FileTree, 0)

Callers 1

processLayerTarFunction · 0.85

Calls 1

NewFileInfoFromTarHeaderFunction · 0.92

Tested by

no test coverage detected