in packages/package.go [663:688]
func (p *Package) GetDataStreamPaths() ([]string, error) {
fs, err := p.fs()
if err != nil {
return nil, err
}
defer fs.Close()
dataStreamBasePath := "data_stream"
// Look for a file here that a data_stream must have, some file systems as Zip files
// may not have entries for directories.
paths, err := fs.Glob(path.Join(dataStreamBasePath, "*", "manifest.yml"))
if err != nil {
return nil, err
}
for i := range paths {
if !strings.HasPrefix(paths[i], dataStreamBasePath) && !strings.HasPrefix(paths[i], "/data_stream") {
return nil, fmt.Errorf("failed to get data stream path inside package: cannot make %q relative to %q", paths[i], dataStreamBasePath)
}
relPath := strings.TrimPrefix(paths[i], dataStreamBasePath)
paths[i] = path.Dir(relPath)
}
return paths, nil
}