github.com/kata-containers/tests@v0.0.0-20240307153542-772105b56064/cmd/check-markdown/display_tsv.go (about) 1 // Copyright (c) 2019 Intel Corporation 2 // 3 // SPDX-License-Identifier: Apache-2.0 4 // 5 6 package main 7 8 import ( 9 "encoding/csv" 10 "os" 11 ) 12 13 type displayTSV struct { 14 writer *csv.Writer 15 disableHeader bool 16 } 17 18 func NewDisplayTSV(file *os.File, separator rune, disableHeader bool) DisplayHandler { 19 tsv := &displayTSV{ 20 disableHeader: disableHeader, 21 } 22 23 tsv.writer = csv.NewWriter(file) 24 25 tsv.writer.Comma = separator 26 27 return tsv 28 } 29 30 func (d *displayTSV) DisplayLinks(doc *Doc) error { 31 if !d.disableHeader { 32 record := linkHeaderRecord() 33 if err := d.writer.Write(record); err != nil { 34 return err 35 } 36 } 37 38 for _, linkList := range doc.Links { 39 for _, link := range linkList { 40 record := linkToRecord(link) 41 42 if err := d.writer.Write(record); err != nil { 43 return err 44 } 45 } 46 } 47 48 d.writer.Flush() 49 50 return d.writer.Error() 51 } 52 53 func (d *displayTSV) DisplayHeadings(doc *Doc) error { 54 if !d.disableHeader { 55 record := headingHeaderRecord() 56 if err := d.writer.Write(record); err != nil { 57 return err 58 } 59 } 60 61 for _, l := range doc.Headings { 62 record := headingToRecord(l) 63 64 if err := d.writer.Write(record); err != nil { 65 return err 66 } 67 } 68 69 d.writer.Flush() 70 71 return d.writer.Error() 72 }