Documentation
¶
Overview ¶
Package model contains the overall model of representable entities.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Environment ¶
type Environment struct {
// OutDir is the path where build outputs are located, relative to some base directory.
OutDir string
}
Environment describes the current build environment.
func (Environment) InternalDir ¶
func (e Environment) InternalDir() string
type File ¶
type File struct {
// RelPath is the relative path to the file.
RelPath string
// FromSourceDir marks the file as being from the source directory.
FromSourceDir bool
}
File wraps a file source.
func (File) Path ¶
func (f File) Path(env *Environment) string
Path returns the actual path to the file, relative to the base directory.
type Filegroups ¶
Filegroups contains named file groups.
func (Filegroups) Paths ¶
func (fgs Filegroups) Paths(env *Environment) map[string][]string
Paths resolves all the paths in a Filegroups.
type Inputs ¶
type Inputs map[string]OutputRefs
Inputs contains references to rules.
func (Inputs) Filegroups ¶
func (i Inputs) Filegroups() Filegroups
Filegroups returns all input filegroups.
type OutputRef ¶
type OutputRef struct {
// Target points to the target the output.
Target *Target
// FilegroupName refers to he file group.
FilegroupName string
}
An OutputRef indexes into a target for a file group.
type OutputRefs ¶
type OutputRefs []OutputRef
func (OutputRefs) Filegroup ¶
func (ors OutputRefs) Filegroup() Filegroup
Filegroup returns a flattened filegroup of all outputs in OutputRefs.
type Rule ¶
type Rule struct {
// Description is a friendly name for the rule.
Description string
// Volatile rules are always rebuilt, regardless of their inputs changing or not.
Volatile bool
// Command returns command lines to run to generate outputs from inputs.
Command func(inputPaths map[string][]string, outputPaths map[string][]string, annotations map[string]interface{}) (string, error)
}
A Rule describes how to build a target.
type Target ¶
type Target struct {
// Rule that will map inputs to outputs.
Rule *Rule
// Inputs that will be provided to generate outputs.
Inputs Inputs
// Outputs that will be generated from inputs.
Outputs Filegroups
// Any additional annotations to consider during execution of the rule.
Annotations map[string]interface{}
}
A Target describes an entity that is mapped from inputs to outputs.
func (*Target) Command ¶
func (t *Target) Command(env *Environment) (string, error)
Command returns the commands to run for a target.
func (*Target) Describe ¶
func (t *Target) Describe(env *Environment) string
Source Files
¶
- model.go