From 6401f9ee0246a39da5c54693778605b1aefb850c Mon Sep 17 00:00:00 2001 From: Gustav Westling Date: Sat, 2 Apr 2022 10:53:07 +0200 Subject: [PATCH] cmd: fix human output --- cmd/kube-score/main.go | 6 ++++-- renderer/human/human.go | 20 ++++++++++++-------- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/cmd/kube-score/main.go b/cmd/kube-score/main.go index 9529cfc8..733cb941 100644 --- a/cmd/kube-score/main.go +++ b/cmd/kube-score/main.go @@ -213,8 +213,10 @@ Use "-" as filename to read from STDIN.`, execName(binName)) if err != nil { termWidth = 80 } - _, err = human.Human(scoreCard, *verboseOutput, termWidth) - return err + r, err = human.Human(scoreCard, *verboseOutput, termWidth) + if err != nil { + return err + } case *outputFormat == "ci" && version == "v1": r = ci.CI(scoreCard) case *outputFormat == "sarif": diff --git a/renderer/human/human.go b/renderer/human/human.go index 480ae0ff..af378683 100644 --- a/renderer/human/human.go +++ b/renderer/human/human.go @@ -37,24 +37,28 @@ func Human(scoreCard *scorecard.Scorecard, verboseOutput int, termWidth int) (io } // Adjust to termsize - fmt.Fprint(w, safeRepeat(" ", min(80, termWidth)-writtenHeaderChars-2)) + _, err := fmt.Fprint(w, safeRepeat(" ", min(80, termWidth)-writtenHeaderChars-2)) + if err != nil { + return nil, fmt.Errorf("failed to write terminal padding: %w", err) + } switch { case scoredObject.AnyBelowOrEqualToGrade(scorecard.GradeCritical): - fmt.Fprintf(w, "💥\n") + _, err = fmt.Fprintf(w, "💥\n") case scoredObject.AnyBelowOrEqualToGrade(scorecard.GradeWarning): - fmt.Fprintf(w, "🤔\n") + _, err = fmt.Fprintf(w, "🤔\n") default: - fmt.Fprintf(w, "✅\n") + _, err = fmt.Fprintf(w, "✅\n") + } + if err != nil { + return nil, fmt.Errorf("failed to write: %w", err) } for _, card := range scoredObject.Checks { r := outputHumanStep(card, verboseOutput, termWidth) - _, err := io.Copy(w, r) - if err != nil { - return nil, err + if _, err := io.Copy(w, r); err != nil { + return nil, fmt.Errorf("failed to copy output: %w", err) } - } }