func()

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
}