post-processor/vagrant: Ability to specify Vagrantfile template

This commit is contained in:
Mitchell Hashimoto 2013-06-27 07:38:33 -07:00
parent e0ab81aee3
commit e44fa1ab90
2 changed files with 20 additions and 4 deletions

View File

@ -16,11 +16,10 @@ var builtins = map[string]string{
type Config struct {
OutputPath string `mapstructure:"output"`
}
type PostProcessor struct {
config Config
config Config
premade map[string]packer.PostProcessor
}

View File

@ -12,7 +12,8 @@ import (
)
type VBoxBoxConfig struct {
OutputPath string `mapstructure:"output"`
OutputPath string `mapstructure:"output"`
VagrantfileTemplate string `mapstructure:"vagrantfile_template"`
}
type VBoxVagrantfileTemplate struct {
@ -70,7 +71,23 @@ func (p *VBoxBoxPostProcessor) PostProcess(ui packer.Ui, artifact packer.Artifac
}
defer vf.Close()
t := template.Must(template.New("vagrantfile").Parse(defaultVBoxVagrantfile))
vagrantfileContents := defaultVBoxVagrantfile
if p.config.VagrantfileTemplate != "" {
f, err := os.Open(p.config.VagrantfileTemplate)
if err != nil {
return nil, err
}
defer f.Close()
contents, err := ioutil.ReadAll(f)
if err != nil {
return nil, err
}
vagrantfileContents = string(contents)
}
t := template.Must(template.New("vagrantfile").Parse(vagrantfileContents))
t.Execute(vf, tplData)
vf.Close()