formula

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Feb 14, 2026 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

View Source
const GopPackage = true

Variables

This section is empty.

Functions

func Gopt_ModuleF_Main

func Gopt_ModuleF_Main(this interface {
	app() *gsh.App
	MainEntry()
})

Gopt_ModuleF_Main is main entry of this classfile.

Types

type BuildResult

type BuildResult struct {
	// contains filtered or unexported fields
}

BuildResult represents the result of building a project.

func (*BuildResult) AddErr

func (b *BuildResult) AddErr(err error)

AddErr records a build error.

func (*BuildResult) Errs

func (b *BuildResult) Errs() []error

Errs returns all errors collected during build.

func (*BuildResult) Metadata

func (b *BuildResult) Metadata() string

Metadata returns the build output metadata.

func (*BuildResult) SetMetadata

func (b *BuildResult) SetMetadata(metadata string)

SetMetadata sets the build output metadata.

type Context

type Context struct {
	SourceDir string
	// contains filtered or unexported fields
}

Context represents the build context.

func NewContext

func NewContext(sourceDir, installDir, matrixStr string, getOutputDir func(string, module.Version) (string, error)) *Context

NewContext creates a Context with build-internal fields.

func (*Context) AddBuildResult

func (c *Context) AddBuildResult(mod module.Version, result BuildResult)

AddBuildResult stores the build result for the given module.

func (*Context) BuildResult

func (c *Context) BuildResult(mod module.Version) (BuildResult, bool)

BuildResult returns the stored build result for the module, if any.

func (*Context) CurrentMatrix

func (c *Context) CurrentMatrix() string

CurrentMatrix returns the active build matrix for this context.

func (*Context) OutputDir__0

func (c *Context) OutputDir__0() (string, error)

OutputDir__0 returns the current module's output (install) directory. In DSL: ctx.outputDir()

func (*Context) OutputDir__1

func (c *Context) OutputDir__1(mod module.Version) (string, error)

OutputDir__1 returns the output (install) directory for the given dependency. In DSL: ctx.outputDir(dep)

type Matrix

type Matrix struct {
	Require        map[string][]string
	Options        map[string][]string
	DefaultOptions map[string][]string
}

func (*Matrix) CombinationCount

func (m *Matrix) CombinationCount() int

CombinationCount returns the total number of cartesian product combinations.

func (*Matrix) Combinations

func (m *Matrix) Combinations() []string

Combinations returns all cartesian product combinations of the matrix. Keys are sorted alphabetically, and combinations are built layer by layer. Require fields are joined with "-", then combined with options using "|".

type ModuleDeps

type ModuleDeps struct {
	// contains filtered or unexported fields
}

ModuleDeps represents the dependencies of a module.

func (*ModuleDeps) Deps

func (p *ModuleDeps) Deps() []module.Version

Deps returns the collected module dependencies.

func (*ModuleDeps) Require

func (p *ModuleDeps) Require(path, ver string)

Require declares that the module being built depends on the specified module (by its path and version).

type ModuleF

type ModuleF struct {
	gsh.App
	// contains filtered or unexported fields
}

ModuleF represents the build formula of a module.

func (*ModuleF) FromVer

func (p *ModuleF) FromVer(ver string)

FromVer sets the minimum version of the module that this formula serves.

func (*ModuleF) Id

func (p *ModuleF) Id(path string)

Id sets the module path that this formula serves. path should be in the form of "owner/repo".

func (*ModuleF) Matrix

func (p *ModuleF) Matrix(m Matrix)

func (*ModuleF) OnBuild

func (p *ModuleF) OnBuild(f func(ctx *Context, proj *Project, out *BuildResult))

OnBuild event is used to instruct the Formula to compile a project.

func (*ModuleF) OnRequire

func (p *ModuleF) OnRequire(f func(proj *Project, deps *ModuleDeps))

OnRequire event is used to retrieve all direct dependencies of a project (module). proj is the project being built, deps is used to declare dependencies.

type Project

type Project struct {
	Deps     []module.Version
	SourceFS fs.ReadFileFS
}

Project represents a project (module) being built.

func (*Project) ReadFile

func (p *Project) ReadFile(path string) ([]byte, error)

ReadFile reads the content of a file in the project.

Jump to

Keyboard shortcuts

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