package output import ( "fmt" "strings" "gitea.hansenits.com.au/hits/ExploreDNS/internal/traverse" ) // formatProbability renders txt_prob (summary_stats.rb): %5.1f%% with a // trailing ".0" trimmed, right-justified to width 5. func formatProbability(prob float64) string { text := fmt.Sprintf("%.1f%%", prob*100) text = strings.Replace(text, ".0%", "%", 1) return fmt.Sprintf("%5s", text) } // summaryStatusLabel returns the Summary Results wording per status // (summary_stats.rb text; answered is handled separately). func summaryStatusLabel(status traverse.Status) string { switch status { case traverse.StatusNoData: return "found no such record" case traverse.StatusReferralLame: return "resulted in a lame referral" case traverse.StatusException: return "resulted in an exception" case traverse.StatusError: return "resulted in an error" case traverse.StatusNoGlue: return "found no glue" case traverse.StatusLoop: return "resulted in a loop" case traverse.StatusCNAMELoop: return "resulted in a CNAME loop" default: return string(status) } } // collapseWhitespace renders an RR on one line with runs of whitespace // collapsed to single spaces (summary_stats.rb text). func collapseWhitespace(s string) string { return strings.Join(strings.Fields(s), " ") }