kata-containers/tests/cmd/github-labels/display_text.go
Chelsea Mafrica 66f3944b52 tests: move github-labels to main repo
Move tool as part of static checks migration.

Fixes #8187

Signed-off-by: Chelsea Mafrica <chelsea.e.mafrica@intel.com>
Signed-off-by: Derek Lee <derlee@redhat.com>
Signed-off-by: Gabriela Cervantes <gabriela.cervantes.tellez@intel.com>
Signed-off-by: Graham Whaley <graham.whaley@intel.com>
Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
Signed-off-by: Marco Vedovati <mvedovati@suse.com>
Signed-off-by: Peng Tao <bergwolf@hyper.sh>
Signed-off-by: Shiming Zhang <wzshiming@foxmail.com>
Signed-off-by: Snir Sheriber <ssheribe@redhat.com>
Signed-off-by: Wainer dos Santos Moschetta <wainersm@redhat.com>
2023-11-28 11:13:55 -08:00

102 lines
1.7 KiB
Go

// Copyright (c) 2019 Intel Corporation
//
// SPDX-License-Identifier: Apache-2.0
//
package main
import (
"fmt"
"os"
)
type displayText struct {
file *os.File
}
func NewDisplayText(file *os.File) DisplayHandler {
return &displayText{
file: file,
}
}
func (d *displayText) DisplayLabels(lf *LabelsFile) error {
_, err := fmt.Fprintf(d.file, "Labels (count: %d):\n", len(lf.Labels))
if err != nil {
return err
}
for _, l := range lf.Labels {
err = d.displayLabel(l)
if err != nil {
return err
}
}
return nil
}
func (d *displayText) displayLabel(l Label) error {
_, err := fmt.Fprintf(d.file, " %s (%q) [category %q, colour %q, from %q]\n",
l.Name,
l.Description,
l.CategoryName,
l.Colour,
l.From)
return err
}
func (d *displayText) DisplayCategories(lf *LabelsFile, showLabels bool) error {
_, err := fmt.Fprintf(d.file, "Categories (count: %d):\n", len(lf.Categories))
if err != nil {
return err
}
for _, c := range lf.Categories {
err := d.displayCategory(c, lf, showLabels)
if err != nil {
return err
}
}
return nil
}
func (d *displayText) displayCategory(c Category, lf *LabelsFile, showLabels bool) error {
if showLabels {
labels, err := getLabelsByCategory(c.Name, lf)
if err != nil {
return err
}
_, err = fmt.Fprintf(d.file, " %s (%q, label count: %d, url: %v)\n",
c.Name,
c.Description,
len(labels),
c.URL)
if err != nil {
return err
}
for _, label := range labels {
_, err := fmt.Fprintf(d.file, " %s (%q)\n",
label.Name,
label.Description)
if err != nil {
return err
}
}
} else {
_, err := fmt.Printf(" %s (%q, url: %v)\n",
c.Name,
c.Description,
c.URL)
if err != nil {
return err
}
}
return nil
}