Documentation
¶
Index ¶
- func CreateFuncs(ctx context.Context, d *data.Data) template.FuncMap
- func Funcs(d *data.Data) template.FuncMap
- func PluginFunc(ctx context.Context, cmd string, opts PluginOpts) func(...interface{}) (interface{}, error)
- func SetExperimental(ctx context.Context) context.Context
- type Configdeprecated
- type MetricsType
- type PluginOpts
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CreateFuncs ¶
CreateFuncs - function mappings are created here
func PluginFunc ¶
func PluginFunc(ctx context.Context, cmd string, opts PluginOpts) func(...interface{}) (interface{}, error)
PluginFunc creates a template function that runs an external process - either a shell script or commandline executable.
Example ¶
ctx := context.Background()
// PluginFunc creates a template function that runs an arbitrary command.
f := PluginFunc(ctx, "echo", PluginOpts{})
// The function can be used in a template, but here we'll just run it
// directly. This is equivalent to running 'echo foo bar'
out, err := f("foo", "bar")
if err != nil {
panic(err)
}
fmt.Println(out)
Output: foo bar
Example (With_template) ¶
ctx := context.Background()
f := PluginFunc(ctx, "echo", PluginOpts{})
// PluginFunc is intended for use with gomplate, but can be used in any
// text/template by adding it to the FuncMap.
tmpl := template.New("new").Funcs(template.FuncMap{"echo": f})
tmpl, err := tmpl.Parse(`{{ echo "baz" "qux" }}`)
if err != nil {
panic(err)
}
err = tmpl.Execute(os.Stdout, nil)
if err != nil {
panic(err)
}
Output: baz qux
Types ¶
type Config
deprecated
type Config struct {
Input string
InputFiles []string
InputDir string
ExcludeGlob []string
OutputFiles []string
OutputDir string
OutputMap string
OutMode string
Out io.Writer
DataSources []string
DataSourceHeaders []string
Contexts []string
Plugins []string
LDelim string
RDelim string
Templates []string
}
Config - values necessary for rendering templates with gomplate. Mainly for use by the CLI
Deprecated: this type will be phased out, internal/config.Config is used everywhere else, and will be exposed as API in a future version
type MetricsType ¶
type MetricsType struct {
// times for rendering each template
RenderDuration map[string]time.Duration
// time it took to gather templates
GatherDuration time.Duration
// time it took to render all templates
TotalRenderDuration time.Duration
TemplatesGathered int
TemplatesProcessed int
Errors int
}
MetricsType - Warning: experimental! This may change in breaking ways without warning. This is not subject to any semantic versioning guarantees!
var Metrics *MetricsType
Metrics tracks interesting basic metrics around gomplate executions. Warning: experimental! This may change in breaking ways without warning. This is not subject to any semantic versioning guarantees!
type PluginOpts ¶
type PluginOpts struct {
// Stderr can be set to redirect the plugin's stderr to a custom writer.
// Defaults to os.Stderr.
Stderr io.Writer
// Timeout is the maximum amount of time to wait for the plugin to complete.
// Defaults to 5 seconds.
Timeout time.Duration
// Pipe indicates whether the last argument should be piped to the plugin's
// stdin (true) or processed as a commandline argument (false)
Pipe bool
}
PluginOpts are options for controlling plugin function execution
Directories
¶
| Path | Synopsis |
|---|---|
|
Package aws contains functions which wrap various Amazon Web Services APIs
|
Package aws contains functions which wrap various Amazon Web Services APIs |
|
Package base64 contains Base64 encoding/decoding functions
|
Package base64 contains Base64 encoding/decoding functions |
|
Package coll contains functions to help manipulate and query collections of data, like slices/arrays and maps.
|
Package coll contains functions to help manipulate and query collections of data, like slices/arrays and maps. |
|
Package conv contains functions that help converting data between different types
|
Package conv contains functions that help converting data between different types |
|
Package crypto contains functions to help perform hashing and simple encryption operations
|
Package crypto contains functions to help perform hashing and simple encryption operations |
|
Package data contains functions that parse and produce data structures in different formats.
|
Package data contains functions that parse and produce data structures in different formats. |
|
Package env contains functions that retrieve data from the environment
|
Package env contains functions that retrieve data from the environment |
|
Package file contains functions for working with files and directories on the local filesystem
|
Package file contains functions for working with files and directories on the local filesystem |
|
Package funcs is an internal package that provides gomplate namespaces and functions to be used in 'text/template' templates.
|
Package funcs is an internal package that provides gomplate namespaces and functions to be used in 'text/template' templates. |
|
internal
|
|
|
Package math contains set of basic math functions to be able to perform simple arithmetic operations
|
Package math contains set of basic math functions to be able to perform simple arithmetic operations |
|
Package net contains functions to help with network-oriented lookups
|
Package net contains functions to help with network-oriented lookups |
|
Package random contains functions for generating random values
|
Package random contains functions for generating random values |
|
Package regexp contains functions for dealing with regular expressions
|
Package regexp contains functions for dealing with regular expressions |
|
Package strings contains functions to manipulate strings
|
Package strings contains functions to manipulate strings |
|
Package test contains functions to help validate assumptions and can cause template generation to fail in specific cases
|
Package test contains functions to help validate assumptions and can cause template generation to fail in specific cases |
|
Package time contains functions to help work with date and time
|
Package time contains functions to help work with date and time |
|
Package tmpl contains functions for defining or executing in-line templates.
|
Package tmpl contains functions for defining or executing in-line templates. |