Commit 568f6358 authored by Mitchell Hashimoto's avatar Mitchell Hashimoto

command/build: machine-readable artifacts

parent 547d1848
...@@ -9,6 +9,7 @@ import ( ...@@ -9,6 +9,7 @@ import (
"log" "log"
"os" "os"
"os/signal" "os/signal"
"strconv"
"strings" "strings"
"sync" "sync"
) )
...@@ -195,7 +196,16 @@ func (c Command) Run(env packer.Environment, args []string) int { ...@@ -195,7 +196,16 @@ func (c Command) Run(env packer.Environment, args []string) int {
if len(artifacts) > 0 { if len(artifacts) > 0 {
env.Ui().Say("\n==> Builds finished. The artifacts of successful builds are:") env.Ui().Say("\n==> Builds finished. The artifacts of successful builds are:")
for name, buildArtifacts := range artifacts { for name, buildArtifacts := range artifacts {
for _, artifact := range buildArtifacts { // Create a UI for the machine readable stuff to be targetted
ui := &packer.TargettedUi{
Target: name,
Ui: env.Ui(),
}
// Machine-readable helpful
ui.Machine("artifact-count", strconv.FormatInt(int64(len(buildArtifacts)), 10))
for i, artifact := range buildArtifacts {
var message bytes.Buffer var message bytes.Buffer
fmt.Fprintf(&message, "--> %s: ", name) fmt.Fprintf(&message, "--> %s: ", name)
...@@ -205,6 +215,24 @@ func (c Command) Run(env packer.Environment, args []string) int { ...@@ -205,6 +215,24 @@ func (c Command) Run(env packer.Environment, args []string) int {
fmt.Fprint(&message, "<nothing>") fmt.Fprint(&message, "<nothing>")
} }
iStr := strconv.FormatInt(int64(i), 10)
if artifact != nil {
ui.Machine("artifact", iStr, "builder-id", artifact.BuilderId())
ui.Machine("artifact", iStr, "id", artifact.Id())
ui.Machine("artifact", iStr, "string", message.String())
files := artifact.Files()
ui.Machine("artifact",
iStr,
"files-count", strconv.FormatInt(int64(len(files)), 10))
for fi, file := range files {
fiStr := strconv.FormatInt(int64(fi), 10)
ui.Machine("artifact", iStr, "file", fiStr, file)
}
} else {
ui.Machine("artifact", iStr, "nil")
}
env.Ui().Say(message.String()) env.Ui().Say(message.String())
} }
} }
......
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