in cli/api/catalog/catalog.go [182:217]
func ZipResource(resource string) (*bytes.Buffer, error) {
buf := new(bytes.Buffer)
writer := zip.NewWriter(buf)
defer writer.Close()
walkFn := func(path string, info os.FileInfo, err error) error {
if info.IsDir() {
return nil
}
relativePath, err := filepath.Rel(resource, path)
if err != nil {
return err
}
relativePath = strings.Replace(relativePath, "\\", "/", -1)
f, err := writer.Create(relativePath)
if err != nil {
return err
}
fileBytes, err := ioutil.ReadFile(path)
if err != nil {
return err
}
_, err = f.Write(fileBytes)
if err != nil {
return err
}
return nil
}
err := filepath.Walk(resource, walkFn)
return buf, err;
}