syft/imgbom/scope/resolver.go
Alfredo Deza c56b82e529 resolvers: add a directory resolver
Signed-off-by: Alfredo Deza <adeza@anchore.com>
2020-07-15 07:53:28 -04:00

37 lines
950 B
Go

package scope
import (
"fmt"
"github.com/anchore/imgbom/imgbom/scope/resolvers"
"github.com/anchore/stereoscope/pkg/file"
"github.com/anchore/stereoscope/pkg/image"
)
type Resolver interface {
ContentResolver
FileResolver
}
// ContentResolver knows how to get content from file.References
type ContentResolver interface {
MultipleFileContentsByRef(f ...file.Reference) (map[file.Reference]string, error)
}
// FileResolver knows how to get file.References from string paths and globs
type FileResolver interface {
FilesByPath(paths ...file.Path) ([]file.Reference, error)
FilesByGlob(patterns ...string) ([]file.Reference, error)
}
func getImageResolver(img *image.Image, option Option) (Resolver, error) {
switch option {
case SquashedScope:
return resolvers.NewImageSquashResolver(img)
case AllLayersScope:
return resolvers.NewAllLayersResolver(img)
default:
return nil, fmt.Errorf("bad option provided: %+v", option)
}
}