Documentation
¶
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Identifiers ¶
Indentifiers parses the identifiers from any expansions in the provided string
func Interpolate ¶
Interpolate takes a set of environment and interpolates it into the provided string using shell script expansions
Example ¶
package main
import (
"fmt"
"log"
"github.com/mfridman/interpolate"
)
func main() {
env := interpolate.NewSliceEnv([]string{
"NAME=James",
})
output, err := interpolate.Interpolate(env, "Hello... ${NAME} welcome to the ${ANOTHER_VAR:-🏖}")
if err != nil {
log.Fatal(err)
}
fmt.Println(output)
}
Output: Hello... James welcome to the 🏖
Types ¶
type EmptyValueExpansion ¶
type EmptyValueExpansion struct {
Identifier string
Content Expression
}
EmptyValueExpansion returns either the value of an env, or a default value if it's unset or null
func (EmptyValueExpansion) Identifiers ¶
func (e EmptyValueExpansion) Identifiers() []string
type Env ¶
Env is an interface for getting environment variables by name and returning a boolean indicating whether the variable was found.
func NewSliceEnv ¶
NewSliceEnv creates an Env from a slice of environment variables in the form "key=value".
This can be used with os.Environ to create an Env.
type Expression ¶
type Expression []ExpressionItem
Expression is a collection of either Text or Expansions
func (Expression) Identifiers ¶
func (e Expression) Identifiers() []string
type ExpressionItem ¶
ExpressionItem models either an Expansion or Text. Either/Or, never both.
func (ExpressionItem) String ¶
func (i ExpressionItem) String() string
type Parser ¶
type Parser struct {
// contains filtered or unexported fields
}
Parser takes a string and parses out a tree of structs that represent text and Expansions
func (*Parser) Parse ¶
func (p *Parser) Parse() (Expression, error)
Parse expansions out of the internal text and return them as a tree of Expressions
type RequiredExpansion ¶
type RequiredExpansion struct {
Identifier string
Message Expression
}
RequiredExpansion returns an env value, or an error if it is unset
func (RequiredExpansion) Identifiers ¶
func (e RequiredExpansion) Identifiers() []string
type SubstringExpansion ¶
SubstringExpansion returns a substring (or slice) of the env
func (SubstringExpansion) Identifiers ¶
func (e SubstringExpansion) Identifiers() []string
type UnsetValueExpansion ¶
type UnsetValueExpansion struct {
Identifier string
Content Expression
}
UnsetValueExpansion returns either the value of an env, or a default value if it's unset
func (UnsetValueExpansion) Identifiers ¶
func (e UnsetValueExpansion) Identifiers() []string
type VariableExpansion ¶
type VariableExpansion struct {
Identifier string
}
VariableExpansion represents either $VAR or ${VAR}, our simplest expansion
func (VariableExpansion) Identifiers ¶
func (e VariableExpansion) Identifiers() []string