in lib/mime.go [382:416]
func expandZip(z *zip.Reader) ref.Val {
var files []map[string]interface{}
for _, f := range z.File {
rc, err := f.Open()
if err != nil {
return types.NewErr("zip: %s", err)
}
var buf bytes.Buffer
_, err = io.Copy(&buf, rc)
if err != nil {
return types.NewErr("zip: %s", err)
}
err = rc.Close()
if err != nil {
return types.NewErr("zip: %s", err)
}
fh := f.FileHeader
fi := fh.FileInfo()
files = append(files, map[string]interface{}{
"Name": fh.Name,
"Comment": fh.Comment,
"IsDir": fi.IsDir(),
"Size": fi.Size(),
"NonUTF8": fh.NonUTF8,
"Modified": fh.Modified,
"CRC32": fh.CRC32,
"Extra": fh.Extra,
"Data": buf.Bytes(),
})
}
return types.DefaultTypeAdapter.NativeToValue(map[string]interface{}{
"File": files,
"Comment": z.Comment,
})
}