// FormatProgress formats the progress information for a specified action. func (sf *StreamFormatter) FormatProgress(id, action string, progress *jsonmessage.JSONProgress, aux interface{}) []byte { if progress == nil { progress = &jsonmessage.JSONProgress{} } if sf.json { var auxJSON *json.RawMessage if aux != nil { auxJSONBytes, err := json.Marshal(aux) if err != nil { return nil } auxJSON = new(json.RawMessage) *auxJSON = auxJSONBytes } b, err := json.Marshal(&jsonmessage.JSONMessage{ Status: action, ProgressMessage: progress.String(), Progress: progress, ID: id, Aux: auxJSON, }) if err != nil { return nil } return append(b, streamNewlineBytes...) } endl := "\r" if progress.String() == "" { endl += "\n" } return []byte(action + " " + progress.String() + endl) }
// FormatProgress formats the progress information for a specified action. func (sf *StreamFormatter) FormatProgress(id, action string, progress *jsonmessage.JSONProgress) []byte { if progress == nil { progress = &jsonmessage.JSONProgress{} } if sf.json { b, err := json.Marshal(&jsonmessage.JSONMessage{ Status: action, ProgressMessage: progress.String(), Progress: progress, ID: id, }) if err != nil { return nil } return append(b, streamNewlineBytes...) } endl := "\r" if progress.String() == "" { endl += "\n" } return []byte(action + " " + progress.String() + endl) }