builder

package
v0.99.0 Latest Latest
Warning

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

Go to latest
Published: Apr 22, 2024 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrGoNotFound is returned when a Go binary hasn't been found
	ErrGoNotFound      = errors.New("go binary not found")
	ErrDepNotFound     = errors.New("dependency not found in go mod file")
	ErrVersionMismatch = errors.New("mismatch in go.mod and builder configuration versions")
)
View Source
var ErrInvalidGoMod = errors.New("invalid gomod specification for module")

ErrInvalidGoMod indicates an invalid gomod

Functions

func Compile

func Compile(cfg Config) error

Compile generates a binary from the sources based on the configuration

func Generate

func Generate(cfg Config) error

Generate assembles a new distribution based on the given configuration

func GenerateAndCompile

func GenerateAndCompile(cfg Config) error

GenerateAndCompile will generate the source files based on the given configuration, update go mod, and will compile into a binary

func GetModules

func GetModules(cfg Config) error

GetModules retrieves the go modules, updating go.mod and go.sum in the process

Types

type Config

type Config struct {
	Logger *zap.Logger

	SkipGenerate         bool   `mapstructure:"-"`
	SkipCompilation      bool   `mapstructure:"-"`
	SkipGetModules       bool   `mapstructure:"-"`
	SkipStrictVersioning bool   `mapstructure:"-"`
	LDFlags              string `mapstructure:"-"`
	Verbose              bool   `mapstructure:"-"`

	Distribution Distribution `mapstructure:"dist"`
	Exporters    []Module     `mapstructure:"exporters"`
	Extensions   []Module     `mapstructure:"extensions"`
	Receivers    []Module     `mapstructure:"receivers"`
	Processors   []Module     `mapstructure:"processors"`
	Connectors   []Module     `mapstructure:"connectors"`
	Providers    *[]Module    `mapstructure:"providers"`
	Replaces     []string     `mapstructure:"replaces"`
	Excludes     []string     `mapstructure:"excludes"`
}

Config holds the builder's configuration

func NewDefaultConfig added in v0.46.0

func NewDefaultConfig() Config

NewDefaultConfig creates a new config, with default values

func (*Config) ParseModules

func (c *Config) ParseModules() error

ParseModules will parse the Modules entries and populate the missing values

func (*Config) SetBackwardsCompatibility added in v0.99.0

func (c *Config) SetBackwardsCompatibility() error

func (*Config) SetGoPath added in v0.63.0

func (c *Config) SetGoPath() error

SetGoPath sets go path

func (*Config) Validate

func (c *Config) Validate() error

Validate checks whether the current configuration is valid

type Distribution

type Distribution struct {
	Module                   string `mapstructure:"module"`
	Name                     string `mapstructure:"name"`
	Go                       string `mapstructure:"go"`
	Description              string `mapstructure:"description"`
	OtelColVersion           string `mapstructure:"otelcol_version"`
	RequireOtelColModule     bool   `mapstructure:"-"` // required for backwards-compatibility with builds older than 0.86.0
	SupportsConfmapFactories bool   `mapstructure:"-"` // Required for backwards-compatibility with builds older than 0.99.0
	OutputPath               string `mapstructure:"output_path"`
	Version                  string `mapstructure:"version"`
	BuildTags                string `mapstructure:"build_tags"`
	DebugCompilation         bool   `mapstructure:"debug_compilation"`
}

Distribution holds the parameters for the final binary

type Module

type Module struct {
	Name   string `mapstructure:"name"`   // if not specified, this is package part of the go mod (last part of the path)
	Import string `mapstructure:"import"` // if not specified, this is the path part of the go mods
	GoMod  string `mapstructure:"gomod"`  // a gomod-compatible spec for the module
	Path   string `mapstructure:"path"`   // an optional path to the local version of this module
}

Module represents a receiver, exporter, processor or extension for the distribution

Jump to

Keyboard shortcuts

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