mirror of
https://github.com/turbot/steampipe.git
synced 2025-12-19 09:58:53 -05:00
39 lines
1.1 KiB
Go
39 lines
1.1 KiB
Go
package ociinstaller
|
|
|
|
import (
|
|
ocispec "github.com/opencontainers/image-spec/specs-go/v1"
|
|
"github.com/turbot/pipe-fittings/v2/ociinstaller"
|
|
"github.com/turbot/steampipe/v2/pkg/constants"
|
|
)
|
|
|
|
type assetsDownloader struct {
|
|
ociinstaller.OciDownloader[*assetsImage, *assetsImageConfig]
|
|
}
|
|
|
|
func (p *assetsDownloader) EmptyConfig() *assetsImageConfig {
|
|
return &assetsImageConfig{}
|
|
}
|
|
|
|
func newAssetDownloader() *assetsDownloader {
|
|
res := &assetsDownloader{}
|
|
|
|
// create the base downloader, passing res as the image provider
|
|
ociDownloader := ociinstaller.NewOciDownloader[*assetsImage, *assetsImageConfig](constants.BaseImageRef, SteampipeMediaTypeProvider{}, res)
|
|
|
|
res.OciDownloader = *ociDownloader
|
|
|
|
return res
|
|
}
|
|
|
|
func (p *assetsDownloader) GetImageData(layers []ocispec.Descriptor) (*assetsImage, error) {
|
|
var assetImage assetsImage
|
|
|
|
// get the report dir
|
|
foundLayers := ociinstaller.FindLayersForMediaType(layers, MediaTypeAssetReportLayer)
|
|
if len(foundLayers) > 0 {
|
|
assetImage.ReportUI = foundLayers[0].Annotations["org.opencontainers.image.title"]
|
|
}
|
|
|
|
return &assetImage, nil
|
|
}
|