func (b *Build) callbackForPush(msg *dockerclient.JSONMessage) { if e := msg.Err(); e != nil { log.Printf("%s", e) return } msg.Status = strings.TrimSpace(msg.Status) switch { case msg.Status == "": // ignore case b.Verbose: fmt.Printf("%s\n", msg.Status) case msg.Status == "Buffering to disk" && msg.Progress.Total > 0: fmt.Printf("\r[%s] Buffering: %4.2f %%", msg.Id, 100.0*float32(msg.Progress.Current)/float32(msg.Progress.Total)) case msg.Status == "Pushing" && msg.Progress.Total > 0: fmt.Printf("\r[%s] Pushing: %4.2f %%", msg.Id, 100.0*float32(msg.Progress.Current)/float32(msg.Progress.Total)) case msg.Status == "Image successfully pushed": fmt.Printf("\r[%s] Pushing: ... done\n", msg.Id) } }