func Update(out Output, id, action string) {
	out.WriteProgress(Progress{ID: id, Action: action})
}
Update is a convenience function to write a progress update to the channel.
package progress
import (
	"fmt"
)
type Progress struct {
	ID string
	Message string
	Action  string
	Current int64
	Total   int64
	Aux interface{}
	LastUpdate bool
}
type Output interface {
	WriteProgress(Progress) error
}
type chanOutput chan<- Progress
func (out chanOutput) WriteProgress(p Progress) error {
	out <- p
	return nil
}
func ChanOutput(progressChan chan<- Progress) Output {
	return chanOutput(progressChan)
}
type discardOutput struct{}
func (discardOutput) WriteProgress(Progress) error {
	return nil
}
func DiscardOutput() Output {
	return discardOutput{}
}