Commit f78d7708 authored by Mitchell Hashimoto's avatar Mitchell Hashimoto

packer: Export the raw template config structs

parent da6bc82d
......@@ -24,36 +24,36 @@ type rawTemplate struct {
// completed form it can be without additional processing by the caller.
type Template struct {
Variables map[string]string
Builders map[string]rawBuilderConfig
Builders map[string]RawBuilderConfig
Hooks map[string][]string
PostProcessors [][]rawPostProcessorConfig
Provisioners []rawProvisionerConfig
PostProcessors [][]RawPostProcessorConfig
Provisioners []RawProvisionerConfig
}
// The rawBuilderConfig struct represents a raw, unprocessed builder
// The RawBuilderConfig struct represents a raw, unprocessed builder
// configuration. It contains the name of the builder as well as the
// raw configuration. If requested, this is used to compile into a full
// builder configuration at some point.
type rawBuilderConfig struct {
type RawBuilderConfig struct {
Name string
Type string
rawConfig interface{}
}
// rawPostProcessorConfig represents a raw, unprocessed post-processor
// RawPostProcessorConfig represents a raw, unprocessed post-processor
// configuration. It contains the type of the post processor as well as the
// raw configuration that is handed to the post-processor for it to process.
type rawPostProcessorConfig struct {
type RawPostProcessorConfig struct {
Type string
KeepInputArtifact bool `mapstructure:"keep_input_artifact"`
rawConfig interface{}
}
// rawProvisionerConfig represents a raw, unprocessed provisioner configuration.
// RawProvisionerConfig represents a raw, unprocessed provisioner configuration.
// It contains the type of the provisioner as well as the raw configuration
// that is handed to the provisioner for it to process.
type rawProvisionerConfig struct {
type RawProvisionerConfig struct {
Type string
Override map[string]interface{}
......@@ -103,10 +103,10 @@ func ParseTemplate(data []byte) (t *Template, err error) {
t = &Template{}
t.Variables = make(map[string]string)
t.Builders = make(map[string]rawBuilderConfig)
t.Builders = make(map[string]RawBuilderConfig)
t.Hooks = rawTpl.Hooks
t.PostProcessors = make([][]rawPostProcessorConfig, len(rawTpl.PostProcessors))
t.Provisioners = make([]rawProvisionerConfig, len(rawTpl.Provisioners))
t.PostProcessors = make([][]RawPostProcessorConfig, len(rawTpl.PostProcessors))
t.Provisioners = make([]RawProvisionerConfig, len(rawTpl.Provisioners))
// Gather all the variables
for k, v := range rawTpl.Variables {
......@@ -115,7 +115,7 @@ func ParseTemplate(data []byte) (t *Template, err error) {
// Gather all the builders
for i, v := range rawTpl.Builders {
var raw rawBuilderConfig
var raw RawBuilderConfig
if err := mapstructure.Decode(v, &raw); err != nil {
if merr, ok := err.(*mapstructure.Error); ok {
for _, err := range merr.Errors {
......@@ -165,7 +165,7 @@ func ParseTemplate(data []byte) (t *Template, err error) {
continue
}
t.PostProcessors[i] = make([]rawPostProcessorConfig, len(rawPP))
t.PostProcessors[i] = make([]RawPostProcessorConfig, len(rawPP))
configs := t.PostProcessors[i]
for j, pp := range rawPP {
config := &configs[j]
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment