debian-forge-composer/internal/osbuild/containers_input.go
Christian Kellner 718b0c0c32 osbuild: add support for org.osbuild.container inputs
Add bindings for `org.osbuild.conainer` inputs which can be used to
supply containers to stages. Currently only fetching containers via
sources is supported.
2022-07-21 13:32:07 +02:00

46 lines
1 KiB
Go

package osbuild
import (
"github.com/osbuild/osbuild-composer/internal/container"
)
type ContainersInputReferences interface {
isContainersInputReferences()
}
type ContainersInputSourceRef struct {
Name string `json:"name,omitempty"`
}
type ContainersInputSourceMap map[string]ContainersInputSourceRef
func (ContainersInputSourceMap) isContainersInputReferences() {}
type ContainersInput struct {
inputCommon
References ContainersInputReferences `json:"references"`
}
const InputTypeContainers string = "org.osbuild.containers"
func NewContainersInputForSources(containers []container.Spec) ContainersInput {
refs := make(ContainersInputSourceMap, len(containers))
for _, c := range containers {
ref := ContainersInputSourceRef{
Name: c.LocalName,
}
refs[c.ImageID] = ref
}
return ContainersInput{
References: refs,
inputCommon: inputCommon{
Type: InputTypeContainers,
Origin: InputOriginSource,
},
}
}
type ContainersInputs map[string]ContainersInput
func (c ContainersInputs) isStageInputs() {}