diff --git a/post-processor/manifest/artifact.go b/post-processor/manifest/artifact.go index 781a54266..50ecc15a0 100644 --- a/post-processor/manifest/artifact.go +++ b/post-processor/manifest/artifact.go @@ -4,13 +4,18 @@ import "fmt" const BuilderId = "packer.post-processor.manifest" +type ArtifactFile struct { + Name string `json:"name"` + Size int64 `json:"size"` +} + type Artifact struct { - BuildName string `json:"name"` - BuilderType string `json:"builder_type"` - BuildTime int64 `json:"build_time"` - ArtifactFiles []string `json:"files"` - ArtifactId string `json:"artifact_id"` - PackerRunUUID string `json:"packer_run_uuid"` + BuildName string `json:"name"` + BuilderType string `json:"builder_type"` + BuildTime int64 `json:"build_time"` + ArtifactFiles []ArtifactFile `json:"files"` + ArtifactId string `json:"artifact_id"` + PackerRunUUID string `json:"packer_run_uuid"` } func (a *Artifact) BuilderId() string { @@ -18,7 +23,11 @@ func (a *Artifact) BuilderId() string { } func (a *Artifact) Files() []string { - return a.ArtifactFiles + var files []string + for _, af := range a.ArtifactFiles { + files = append(files, af.Name) + } + return files } func (a *Artifact) Id() string { diff --git a/post-processor/manifest/post-processor.go b/post-processor/manifest/post-processor.go index bd6648523..7e67b8cad 100644 --- a/post-processor/manifest/post-processor.go +++ b/post-processor/manifest/post-processor.go @@ -54,9 +54,16 @@ func (p *PostProcessor) PostProcess(ui packer.Ui, source packer.Artifact) (packe artifact := &Artifact{} var err error + var fi os.FileInfo // Create the current artifact. - artifact.ArtifactFiles = source.Files() + for _, name := range source.Files() { + 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}) + } + } artifact.ArtifactId = source.Id() artifact.BuilderType = p.config.PackerBuilderType artifact.BuildName = p.config.PackerBuildName