aur_warnings.go 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. package query
  2. import (
  3. "fmt"
  4. "strings"
  5. "github.com/leonelquinteros/gotext"
  6. "github.com/Jguer/yay/v10/pkg/stringset"
  7. "github.com/Jguer/yay/v10/pkg/text"
  8. )
  9. type AURWarnings struct {
  10. Orphans []string
  11. OutOfDate []string
  12. Missing []string
  13. Ignore stringset.StringSet
  14. }
  15. func NewWarnings() *AURWarnings {
  16. return &AURWarnings{Ignore: make(stringset.StringSet)}
  17. }
  18. func (warnings *AURWarnings) Print() {
  19. normalMissing, debugMissing := filterDebugPkgs(warnings.Missing)
  20. if len(normalMissing) > 0 {
  21. text.Warn(gotext.Get("Missing AUR Packages:"))
  22. printRange(normalMissing)
  23. }
  24. if len(debugMissing) > 0 {
  25. text.Warn(gotext.Get("Missing AUR Debug Packages:"))
  26. printRange(debugMissing)
  27. }
  28. if len(warnings.Orphans) > 0 {
  29. text.Warn(gotext.Get("Orphaned AUR Packages:"))
  30. printRange(warnings.Orphans)
  31. }
  32. if len(warnings.OutOfDate) > 0 {
  33. text.Warn(gotext.Get("Flagged Out Of Date AUR Packages:"))
  34. printRange(warnings.OutOfDate)
  35. }
  36. }
  37. func filterDebugPkgs(names []string) (normal, debug []string) {
  38. normal = make([]string, 0, len(names))
  39. debug = make([]string, 0, len(names))
  40. for _, name := range names {
  41. if strings.HasSuffix(name, "-debug") {
  42. debug = append(debug, name)
  43. } else {
  44. normal = append(normal, name)
  45. }
  46. }
  47. return
  48. }
  49. func printRange(names []string) {
  50. for _, name := range names {
  51. fmt.Print(" " + text.Cyan(name))
  52. }
  53. fmt.Println()
  54. }