func()

in sharedlibraries/filesystem/filesystem.go [116:153]


func (h Helper) WalkAndZip(source string, z zipper.Zipper, w *zip.Writer) error {
	return filepath.Walk(source, func(path string, info os.FileInfo, err error) error {
		if err != nil {
			return err
		}
		header, err := z.FileInfoHeader(info)
		if err != nil {
			return err
		}
		header.Method = zip.Deflate

		header.Name, err = filepath.Rel(filepath.Dir(source), path)
		if err != nil {
			return err
		}
		if info.IsDir() {
			header.Name += "/"
		}

		headerWriter, err := z.CreateHeader(w, header)
		if err != nil {
			return err
		}

		if info.IsDir() {
			return nil
		}

		f, err := h.Open(path)
		if err != nil {
			return err
		}
		defer f.Close()

		_, err = h.Copy(headerWriter, f)
		return err
	})
}