generate

package
v0.7.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 21, 2020 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Overview

Package generate provides functionality to generate a Lockfile.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AnyImage

type AnyImage struct {
	DockerfileImage     *parse.DockerfileImage
	ComposefileImage    *parse.ComposefileImage
	KubernetesfileImage *parse.KubernetesfileImage
	Err                 error
}

AnyImage contains any possible type of parser.

type AnyPath

type AnyPath struct {
	DockerfilePath     string
	ComposefilePath    string
	KubernetesfilePath string
	Err                error
}

AnyPath contains any possible type of path.

type Generator

type Generator struct {
	PathCollector      IPathCollector
	ImageParser        IImageParser
	ImageDigestUpdater IImageDigestUpdater
}

Generator creates a Lockfile.

func NewGenerator

func NewGenerator(
	pathCollector IPathCollector,
	imageParser IImageParser,
	imageDigestUpdater IImageDigestUpdater,
) (*Generator, error)

NewGenerator returns a Generator after validating its fields.

func (*Generator) GenerateLockfile

func (g *Generator) GenerateLockfile(writer io.Writer) error

GenerateLockfile creates a Lockfile and writes it to an io.Writer.

type IGenerator

type IGenerator interface {
	GenerateLockfile(writer io.Writer) error
}

IGenerator provides an interface for Generator's exported methods, which are used by docker-lock's cli as well as Verifier.

type IImageDigestUpdater

type IImageDigestUpdater interface {
	UpdateDigests(
		anyImages <-chan *AnyImage, done <-chan struct{},
	) <-chan *AnyImage
}

IImageDigestUpdater provides an interface for ImageDigestUpdater's exported methods, which are used by Generator.

type IImageParser

type IImageParser interface {
	ParseFiles(anyPaths <-chan *AnyPath, done <-chan struct{}) <-chan *AnyImage
}

IImageParser provides an interface for Parser's exported methods, which are used by Generator.

type IPathCollector

type IPathCollector interface {
	CollectPaths(done <-chan struct{}) <-chan *AnyPath
}

IPathCollector provides an interface for PathCollector's exported methods, which are used by Generator.

type ImageDigestUpdater

type ImageDigestUpdater struct {
	ImageDigestUpdater   update.IImageDigestUpdater
	IgnoreMissingDigests bool
}

ImageDigestUpdater contains an ImageDigestUpdater for all images.

func NewImageDigestUpdater

func NewImageDigestUpdater(
	imageDigestUpdater update.IImageDigestUpdater,
	ignoreMissingDigests bool,
) (*ImageDigestUpdater, error)

NewImageDigestUpdater returns an ImageDigestUpdater after validating its fields.

func (*ImageDigestUpdater) UpdateDigests

func (i *ImageDigestUpdater) UpdateDigests(
	anyImages <-chan *AnyImage,
	done <-chan struct{},
) <-chan *AnyImage

UpdateDigests updates images with the most recent digests from registries.

type ImageParser

type ImageParser struct {
	DockerfileImageParser     parse.IDockerfileImageParser
	ComposefileImageParser    parse.IComposefileImageParser
	KubernetesfileImageParser parse.IKubernetesfileImageParser
}

ImageParser contains ImageParsers for all files.

func (*ImageParser) ParseFiles

func (i *ImageParser) ParseFiles(
	anyPaths <-chan *AnyPath,
	done <-chan struct{},
) <-chan *AnyImage

ParseFiles parses all files for Images.

type Lockfile

type Lockfile struct {
	DockerfileImages     map[string][]*parse.DockerfileImage     `json:"dockerfiles,omitempty"`     // nolint: lll
	ComposefileImages    map[string][]*parse.ComposefileImage    `json:"composefiles,omitempty"`    // nolint: lll
	KubernetesfileImages map[string][]*parse.KubernetesfileImage `json:"kubernetesfiles,omitempty"` // nolint: lll
}

Lockfile represents the canonical 'docker-lock.json'. It provides the capability to write its contents in JSON format.

func NewLockfile

func NewLockfile(anyImages <-chan *AnyImage) (*Lockfile, error)

NewLockfile sorts images and returns a Lockfile.

func (*Lockfile) Write

func (l *Lockfile) Write(writer io.Writer) error

Write writes the Lockfile in JSON format to an io.Writer.

type PathCollector

type PathCollector struct {
	DockerfileCollector     collect.IPathCollector
	ComposefileCollector    collect.IPathCollector
	KubernetesfileCollector collect.IPathCollector
}

PathCollector contains PathCollectors for all files.

func (*PathCollector) CollectPaths

func (p *PathCollector) CollectPaths(done <-chan struct{}) <-chan *AnyPath

CollectPaths collects paths to be parsed.

Directories

Path Synopsis
Package collect provides functionality to collect file paths for processing.
Package collect provides functionality to collect file paths for processing.
Package parse provides functionality to parse images from collected files.
Package parse provides functionality to parse images from collected files.
Package registry provides functionality to get digests from registries.
Package registry provides functionality to get digests from registries.
contrib
Package contrib provides functionality for getting digests from registries supported by docker-lock's community.
Package contrib provides functionality for getting digests from registries supported by docker-lock's community.
firstparty
Package firstparty provides functionality for getting digests from registries supported by docker-lock's maintainers.
Package firstparty provides functionality for getting digests from registries supported by docker-lock's maintainers.
Package update provides functionality to update images with digests.
Package update provides functionality to update images with digests.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL