Documentation ¶
Index ¶
- Variables
- func ExecuteSingleStepAction(cxt *context.Context, action ExecutableAction) (string, error)
- func ExecuteStep(cxt *context.Context, step ExecutableStep) (string, error)
- func LoadAction(cxt *context.Context, commandFile string, ...) error
- func ProcessFileOutputs(cxt *context.Context, step StepWithOutputs) error
- func ProcessJsonPathOutputs(cxt *context.Context, step StepWithOutputs, stdout string) error
- func ProcessRegexOutputs(cxt *context.Context, step StepWithOutputs, stdout string) error
- func UnmarshalAction(unmarshal func(interface{}) error, builder BuildableAction) (map[string][]interface{}, error)
- type BuildableAction
- type Dashes
- type ExecutableAction
- type ExecutableStep
- type Flag
- type Flags
- type HasCustomDashes
- type HasOrderedArguments
- type Output
- type OutputFile
- type OutputJsonPath
- type OutputRegex
- type StepWithOutputs
- type SuppressesOutput
Constants ¶
This section is empty.
Variables ¶
var DefaultFlagDashes = Dashes{
Long: "--",
Short: "-",
}
Functions ¶
func ExecuteSingleStepAction ¶
func ExecuteSingleStepAction(cxt *context.Context, action ExecutableAction) (string, error)
ExecuteSingleStepAction runs the command represented by an ExecutableAction, where only a single step is allowed to be defined in the Action (which is what happens when Porter executes steps one at a time).
func ExecuteStep ¶
func ExecuteStep(cxt *context.Context, step ExecutableStep) (string, error)
ExecuteStep runs the command represented by an ExecutableStep, piping stdout/stderr back to the context and returns the buffered output for subsequent processing.
func LoadAction ¶
func LoadAction(cxt *context.Context, commandFile string, unmarshal func([]byte) (interface{}, error)) error
LoadAction reads input from stdin or a command file and uses the specified unmarshal function to unmarshal it into a typed Action. The unmarshal function is responsible for calling yaml.Unmarshal and passing in a reference to an appropriate Action instance.
Example:
var action Action err := builder.LoadAction(m.Context, opts.File, func(contents []byte) (interface{}, error) { err := yaml.Unmarshal(contents, &action) return &action, err })
func ProcessFileOutputs ¶
func ProcessFileOutputs(cxt *context.Context, step StepWithOutputs) error
ProcessFileOutputs makes the contents of a file specified by any OutputFile interface available as an output.
func ProcessJsonPathOutputs ¶
func ProcessJsonPathOutputs(cxt *context.Context, step StepWithOutputs, stdout string) error
ProcessJsonPathOutputs evaluates the specified output buffer as JSON, looks through the outputs for any that implement the OutputJsonPath and extracts their output.
func ProcessRegexOutputs ¶
func ProcessRegexOutputs(cxt *context.Context, step StepWithOutputs, stdout string) error
ProcessJsonPathOutputs looks through the outputs for any that implement the OutputRegex, applies the regular expression to the output buffer and extracts their output.
func UnmarshalAction ¶
func UnmarshalAction(unmarshal func(interface{}) error, builder BuildableAction) (map[string][]interface{}, error)
UnmarshalAction handles unmarshaling any action, given a pointer to a slice of Steps. Iterate over the results and cast back to the Steps to use the results.
var steps []Step results, err := UnmarshalAction(unmarshal, &steps) if err != nil { return err } for _, result := range results { step := result.(*[]Step) a.Steps = append(a.Steps, *step...) }
Types ¶
type BuildableAction ¶
type BuildableAction interface {
// MakeSteps returns a Steps struct to unmarshal into.
MakeSteps() interface{}
}
BuildableAction is an Action that can be marshaled and unmarshaled "generically"
type ExecutableAction ¶
type ExecutableAction interface {
GetSteps() []ExecutableStep
}
type ExecutableStep ¶
type Flag ¶
Flag represents a flag passed to a mixin command.
type Flags ¶
type Flags []Flag
func (Flags) MarshalYAML ¶
MarshalYAML writes out flags back into the proper format for mixin flags. Input: []Flags{ {"flag1", []string{"value"}}, {"flag2", []string{"value"}}, {"flag3", []string{"value1", "value2"} }
Is turned into ¶
flags:
flag1: value flag2: value flag3: - value1 - value2
func (*Flags) ToSlice ¶
ToSlice converts to a string array suitable of command arguments suitable for passing to exec.Command
func (*Flags) UnmarshalYAML ¶
UnmarshalYAML takes input like this flags:
flag1: value flag2: value flag3: - value1 - value2
and turns it into this:
[]Flags{ {"flag1", []string{"value"}}, {"flag2", []string{"value"}}, {"flag3", []string{"value1", "value2"} }
type HasCustomDashes ¶
type HasCustomDashes interface {
GetDashes() Dashes
}
type HasOrderedArguments ¶ added in v0.27.2
type HasOrderedArguments interface {
GetSuffixArguments() []string
}
type OutputFile ¶
type OutputJsonPath ¶
type OutputRegex ¶
type StepWithOutputs ¶
type StepWithOutputs interface {
GetOutputs() []Output
}
type SuppressesOutput ¶
type SuppressesOutput interface {
SuppressesOutput() bool
}