utils.go 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. package main
  2. import (
  3. "unicode"
  4. "github.com/leonelquinteros/gotext"
  5. "github.com/Jguer/yay/v10/pkg/settings"
  6. "github.com/Jguer/yay/v10/pkg/text"
  7. )
  8. const gitEmptyTree = "4b825dc642cb6eb9a060e54bf8d69288fbee4904"
  9. func stringSliceEqual(a, b []string) bool {
  10. if a == nil && b == nil {
  11. return true
  12. }
  13. if a == nil || b == nil {
  14. return false
  15. }
  16. if len(a) != len(b) {
  17. return false
  18. }
  19. for i := 0; i < len(a); i++ {
  20. if a[i] != b[i] {
  21. return false
  22. }
  23. }
  24. return true
  25. }
  26. func removeInvalidTargets(targets []string) []string {
  27. filteredTargets := make([]string, 0)
  28. for _, target := range targets {
  29. db, _ := splitDBFromName(target)
  30. if db == "aur" && config.Runtime.Mode == settings.ModeRepo {
  31. text.Warnln(gotext.Get("%s: can't use target with option --repo -- skipping", cyan(target)))
  32. continue
  33. }
  34. if db != "aur" && db != "" && config.Runtime.Mode == settings.ModeAUR {
  35. text.Warnln(gotext.Get("%s: can't use target with option --aur -- skipping", cyan(target)))
  36. continue
  37. }
  38. filteredTargets = append(filteredTargets, target)
  39. }
  40. return filteredTargets
  41. }
  42. // LessRunes compares two rune values, and returns true if the first argument is lexicographicaly smaller.
  43. func LessRunes(iRunes, jRunes []rune) bool {
  44. max := len(iRunes)
  45. if max > len(jRunes) {
  46. max = len(jRunes)
  47. }
  48. for idx := 0; idx < max; idx++ {
  49. ir := iRunes[idx]
  50. jr := jRunes[idx]
  51. lir := unicode.ToLower(ir)
  52. ljr := unicode.ToLower(jr)
  53. if lir != ljr {
  54. return lir < ljr
  55. }
  56. // the lowercase runes are the same, so compare the original
  57. if ir != jr {
  58. return ir < jr
  59. }
  60. }
  61. return len(iRunes) < len(jRunes)
  62. }