diff --git a/post-processor/manifest/post-processor.go b/post-processor/manifest/post-processor.go index 7e67b8cad..0b543d3a4 100644 --- a/post-processor/manifest/post-processor.go +++ b/post-processor/manifest/post-processor.go @@ -6,6 +6,7 @@ import ( "io/ioutil" "log" "os" + "path/filepath" "time" "github.com/mitchellh/packer/common" @@ -17,9 +18,9 @@ import ( type Config struct { common.PackerConfig `mapstructure:",squash"` - Filename string `mapstructure:"filename"` - - ctx interpolate.Context + Filename string `mapstructure:"filename"` + StripPath bool `mapstructure:"strip_path"` + ctx interpolate.Context } type PostProcessor struct { @@ -58,11 +59,16 @@ func (p *PostProcessor) PostProcess(ui packer.Ui, source packer.Artifact) (packe // Create the current artifact. for _, name := range source.Files() { + af := ArtifactFile{} if fi, err = os.Stat(name); err == nil { - artifact.ArtifactFiles = append(artifact.ArtifactFiles, ArtifactFile{Name: name, Size: fi.Size()}) - } else { - artifact.ArtifactFiles = append(artifact.ArtifactFiles, ArtifactFile{Name: name}) + af.Size = fi.Size() } + if p.config.StripPath { + af.Name = filepath.Base(name) + } else { + af.Name = name + } + artifact.ArtifactFiles = append(artifact.ArtifactFiles, af) } artifact.ArtifactId = source.Id() artifact.BuilderType = p.config.PackerBuilderType diff --git a/website/source/docs/post-processors/manifest.html.md b/website/source/docs/post-processors/manifest.html.md index 88e658288..2130c53a4 100644 --- a/website/source/docs/post-processors/manifest.html.md +++ b/website/source/docs/post-processors/manifest.html.md @@ -22,6 +22,7 @@ You can specify manifest more than once and write each build to its own file, or ### Optional: - `filename` (string) The manifest will be written to this file. This defaults to `packer-manifest.json`. +- `strip_path` (bool) Write only filename without the path to the manifest file. This defaults to false. ### Example Configuration @@ -32,7 +33,8 @@ You can simply add `{"type":"manifest"}` to your post-processor section. Below i "post-processors": [ { "type": "manifest", - "filename": "manifest.json" + "filename": "manifest.json", + "strip_path": true } ] }