post-processor/vagrant: include files
This commit is contained in:
parent
eaf76618cb
commit
fb5d1708c5
|
@ -17,6 +17,8 @@ FEATURES:
|
||||||
[GH-715]
|
[GH-715]
|
||||||
* "description" field in templates: write a human-readable description
|
* "description" field in templates: write a human-readable description
|
||||||
of what a template does. This will be shown in `packer inspect`.
|
of what a template does. This will be shown in `packer inspect`.
|
||||||
|
* Vagrant post-processor now accepts a list of files to include in the
|
||||||
|
box.
|
||||||
|
|
||||||
IMPROVEMENTS:
|
IMPROVEMENTS:
|
||||||
|
|
||||||
|
|
|
@ -18,6 +18,7 @@ import (
|
||||||
type VBoxBoxConfig struct {
|
type VBoxBoxConfig struct {
|
||||||
common.PackerConfig `mapstructure:",squash"`
|
common.PackerConfig `mapstructure:",squash"`
|
||||||
|
|
||||||
|
Include []string `mapstructure:"include"`
|
||||||
OutputPath string `mapstructure:"output"`
|
OutputPath string `mapstructure:"output"`
|
||||||
VagrantfileTemplate string `mapstructure:"vagrantfile_template"`
|
VagrantfileTemplate string `mapstructure:"vagrantfile_template"`
|
||||||
CompressionLevel int `mapstructure:"compression_level"`
|
CompressionLevel int `mapstructure:"compression_level"`
|
||||||
|
@ -101,6 +102,16 @@ func (p *VBoxBoxPostProcessor) PostProcess(ui packer.Ui, artifact packer.Artifac
|
||||||
}
|
}
|
||||||
defer os.RemoveAll(dir)
|
defer os.RemoveAll(dir)
|
||||||
|
|
||||||
|
// Copy all of the includes files into the temporary directory
|
||||||
|
for _, src := range p.config.Include {
|
||||||
|
ui.Message(fmt.Sprintf("Copying from include: %s", src))
|
||||||
|
dst := filepath.Join(dir, filepath.Base(src))
|
||||||
|
if err := CopyContents(dst, src); err != nil {
|
||||||
|
err = fmt.Errorf("Error copying include file: %s\n\n%s", src, err)
|
||||||
|
return nil, false, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Copy all of the original contents into the temporary directory
|
// Copy all of the original contents into the temporary directory
|
||||||
for _, path := range artifact.Files() {
|
for _, path := range artifact.Files() {
|
||||||
|
|
||||||
|
@ -112,7 +123,7 @@ func (p *VBoxBoxPostProcessor) PostProcess(ui packer.Ui, artifact packer.Artifac
|
||||||
return nil, false, err
|
return nil, false, err
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
ui.Message(fmt.Sprintf("Copying: %s", path))
|
ui.Message(fmt.Sprintf("Copying from artifact: %s", path))
|
||||||
dstPath := filepath.Join(dir, filepath.Base(path))
|
dstPath := filepath.Join(dir, filepath.Base(path))
|
||||||
if err := CopyContents(dstPath, path); err != nil {
|
if err := CopyContents(dstPath, path); err != nil {
|
||||||
return nil, false, err
|
return nil, false, err
|
||||||
|
@ -136,6 +147,8 @@ func (p *VBoxBoxPostProcessor) PostProcess(ui packer.Ui, artifact packer.Artifac
|
||||||
|
|
||||||
vagrantfileContents := defaultVBoxVagrantfile
|
vagrantfileContents := defaultVBoxVagrantfile
|
||||||
if p.config.VagrantfileTemplate != "" {
|
if p.config.VagrantfileTemplate != "" {
|
||||||
|
ui.Message(fmt.Sprintf(
|
||||||
|
"Using Vagrantfile template: %s", p.config.VagrantfileTemplate))
|
||||||
f, err := os.Open(p.config.VagrantfileTemplate)
|
f, err := os.Open(p.config.VagrantfileTemplate)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, false, err
|
return nil, false, err
|
||||||
|
|
Loading…
Reference in New Issue