mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-08-09 03:48:05 +00:00
to the kata-containers repo under the src/tools/log-parser folder and vendor the modules Fixes: #4100 Signed-off-by: Snir Sheriber <ssheribe@redhat.com>
59 lines
1.1 KiB
Go
59 lines
1.1 KiB
Go
//
|
|
// Copyright (c) 2018 Intel Corporation
|
|
//
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
//
|
|
|
|
package main
|
|
|
|
import (
|
|
"encoding/xml"
|
|
"fmt"
|
|
"os"
|
|
)
|
|
|
|
type displayXML struct {
|
|
}
|
|
|
|
// MarshalXML converts a MapSS map type into an XML representation. This is
|
|
// required because the XML package is unable to deal with maps itself.
|
|
func (m MapSS) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
|
|
tokens := []xml.Token{start}
|
|
|
|
for key, value := range m {
|
|
t := xml.StartElement{
|
|
Name: xml.Name{
|
|
Space: "",
|
|
Local: key,
|
|
},
|
|
}
|
|
|
|
tokens = append(tokens, t, xml.CharData(value), xml.EndElement{Name: t.Name})
|
|
}
|
|
|
|
tokens = append(tokens, xml.EndElement{Name: start.Name})
|
|
|
|
for _, t := range tokens {
|
|
err := e.EncodeToken(t)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
return e.Flush()
|
|
}
|
|
|
|
func (d *displayXML) Display(entries *LogEntries, fieldNames []string, file *os.File) error {
|
|
|
|
bytes, err := xml.MarshalIndent(entries, displayPrefix, displayIndentValue)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
output := string(bytes)
|
|
|
|
_, err = fmt.Fprintln(file, output)
|
|
|
|
return err
|
|
}
|