debian-forge-composer/vendor/github.com/osbuild/images/pkg/manifest/xz.go
Achilleas Koutsou d4332f85d3 deps: update osbuild/images to v0.3.0
Bump the required osbuild version to v93 (due to the systemd units
change).

Pin the new osbuild version in Schutzfile.

Update repo snapshots in Schutzfile due to osbuild v93 depending on
new selinux-policy build.
2023-08-24 20:30:24 +02:00

56 lines
1.3 KiB
Go

package manifest
import (
"github.com/osbuild/images/pkg/artifact"
"github.com/osbuild/images/pkg/osbuild"
)
// The XZ pipeline compresses a raw image file using xz.
type XZ struct {
Base
filename string
imgPipeline FilePipeline
}
func (p XZ) Filename() string {
return p.filename
}
func (p *XZ) SetFilename(filename string) {
p.filename = filename
}
// NewXZ creates a new XZ pipeline. imgPipeline is the pipeline producing the
// raw image that will be xz compressed.
func NewXZ(buildPipeline *Build, imgPipeline FilePipeline) *XZ {
p := &XZ{
Base: NewBase(imgPipeline.Manifest(), "xz", buildPipeline),
filename: "image.xz",
imgPipeline: imgPipeline,
}
buildPipeline.addDependent(p)
imgPipeline.Manifest().addPipeline(p)
return p
}
func (p *XZ) serialize() osbuild.Pipeline {
pipeline := p.Base.serialize()
pipeline.AddStage(osbuild.NewXzStage(
osbuild.NewXzStageOptions(p.Filename()),
osbuild.NewXzStageInputs(osbuild.NewFilesInputPipelineObjectRef(p.imgPipeline.Name(), p.imgPipeline.Export().Filename(), nil)),
))
return pipeline
}
func (p *XZ) getBuildPackages(Distro) []string {
return []string{"xz"}
}
func (p *XZ) Export() *artifact.Artifact {
p.Base.export = true
mimeType := "application/xz"
return artifact.New(p.Name(), p.Filename(), &mimeType)
}