modules

package
v1.38.0 Latest Latest
Warning

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

Go to latest
Published: Mar 8, 2024 License: Apache-2.0 Imports: 23 Imported by: 0

Documentation

Overview

Package modules implements all logic needed for interacting with stencil modules and their interaction with a service generated by stencil.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Module

type Module struct {

	// Name is the name of a module. This should be a valid go
	// import path. For example: github.com/getoutreach/stencil-base
	Name string

	// URI is the underlying URI being used to download this module
	URI string

	// Version is the version of this module
	Version string
	// contains filtered or unexported fields
}

Module is a stencil module that contains template files.

func GetModulesForService

func GetModulesForService(ctx context.Context, opts *ModuleResolveOptions) ([]*Module, error)

GetModulesForService returns a list of modules that have been resolved from the provided service manifest, respecting constraints and channels as needed.

func New

New creates a new module from a TemplateRepository. Version must be set and can be obtained via the gobox/pkg/cli/updater/resolver package, or by using the GetModulesForService function.

uri is the URI for the module. If it is an empty string https://+name is used instead.

func NewWithFS

func NewWithFS(ctx context.Context, name string, fs billy.Filesystem) *Module

NewWithFS creates a module with the specified file system. This is generally only meant to be used in tests.

func (*Module) GetFS

func (m *Module) GetFS(ctx context.Context) (billy.Filesystem, error)

GetFS returns a billy.Filesystem that contains the contents of this module.

func (*Module) GetTemplate

func (m *Module) GetTemplate() *template.Template

GetTemplate returns the go template for this module

func (*Module) Manifest

Manifest downloads the module if not already downloaded and returns a parsed configuration.TemplateRepositoryManifest of this module.

func (*Module) RegisterExtensions

func (m *Module) RegisterExtensions(ctx context.Context, log logrus.FieldLogger, ext *extensions.Host) error

RegisterExtensions registers all extensions provided by the given module. If the module is a local file URI then extensions will be sourced from the `./bin` directory of the base of the path.

type ModuleResolveOptions added in v1.29.0

type ModuleResolveOptions struct {
	// Token is the token to use to resolve modules
	Token cfg.SecretData

	// Log is the logger to use
	Log logrus.FieldLogger

	// ServiceManifest is the manifest to resolve modules for.
	// This can only be supplied if Module is not set.
	ServiceManifest *configuration.ServiceManifest

	// Module is the module to resolve dependencies for.
	// This can only be supplied if ServiceManifest is not
	// set. This module is automatically added as a
	// Replacement.
	Module *Module

	// Replacements is a map of modules to use instead of ones specified
	// in the manifest. This is mainly meant for tests/importing of stencil
	// as this is not resolved and instead requires a module type to be
	// passed.
	Replacements map[string]*Module
}

ModuleResolveOptions contains options for resolving modules

Directories

Path Synopsis
Package modulestest contains code for interacting with modules in tests.
Package modulestest contains code for interacting with modules in tests.

Jump to

Keyboard shortcuts

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