csv.go 862 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package report
  2. import (
  3. "encoding/csv"
  4. "io"
  5. "strconv"
  6. )
  7. // writeCsv writes the list of findings to a writeCloser.
  8. func writeCsv(f []Finding, w io.WriteCloser) error {
  9. if len(f) == 0 {
  10. return nil
  11. }
  12. defer w.Close()
  13. cw := csv.NewWriter(w)
  14. err := cw.Write([]string{"RuleID",
  15. "Commit",
  16. "File",
  17. "Secret",
  18. "Match",
  19. "StartLine",
  20. "EndLine",
  21. "StartColumn",
  22. "EndColumn",
  23. "Author",
  24. "Message",
  25. "Date",
  26. "Email",
  27. "Fingerprint",
  28. })
  29. if err != nil {
  30. return err
  31. }
  32. for _, f := range f {
  33. err = cw.Write([]string{f.RuleID,
  34. f.Commit,
  35. f.File,
  36. f.Secret,
  37. f.Match,
  38. strconv.Itoa(f.StartLine),
  39. strconv.Itoa(f.EndLine),
  40. strconv.Itoa(f.StartColumn),
  41. strconv.Itoa(f.EndColumn),
  42. f.Author,
  43. f.Message,
  44. f.Date,
  45. f.Email,
  46. f.Fingerprint,
  47. })
  48. if err != nil {
  49. return err
  50. }
  51. }
  52. cw.Flush()
  53. return cw.Error()
  54. }