1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- package main
- import (
- "unicode"
- "github.com/leonelquinteros/gotext"
- "github.com/Jguer/yay/v10/pkg/settings"
- "github.com/Jguer/yay/v10/pkg/text"
- )
- const gitEmptyTree = "4b825dc642cb6eb9a060e54bf8d69288fbee4904"
- func stringSliceEqual(a, b []string) bool {
- if a == nil && b == nil {
- return true
- }
- if a == nil || b == nil {
- return false
- }
- if len(a) != len(b) {
- return false
- }
- for i := 0; i < len(a); i++ {
- if a[i] != b[i] {
- return false
- }
- }
- return true
- }
- func removeInvalidTargets(targets []string) []string {
- filteredTargets := make([]string, 0)
- for _, target := range targets {
- db, _ := splitDBFromName(target)
- if db == "aur" && config.Runtime.Mode == settings.ModeRepo {
- text.Warnln(gotext.Get("%s: can't use target with option --repo -- skipping", cyan(target)))
- continue
- }
- if db != "aur" && db != "" && config.Runtime.Mode == settings.ModeAUR {
- text.Warnln(gotext.Get("%s: can't use target with option --aur -- skipping", cyan(target)))
- continue
- }
- filteredTargets = append(filteredTargets, target)
- }
- return filteredTargets
- }
- // LessRunes compares two rune values, and returns true if the first argument is lexicographicaly smaller.
- func LessRunes(iRunes, jRunes []rune) bool {
- max := len(iRunes)
- if max > len(jRunes) {
- max = len(jRunes)
- }
- for idx := 0; idx < max; idx++ {
- ir := iRunes[idx]
- jr := jRunes[idx]
- lir := unicode.ToLower(ir)
- ljr := unicode.ToLower(jr)
- if lir != ljr {
- return lir < ljr
- }
- // the lowercase runes are the same, so compare the original
- if ir != jr {
- return ir < jr
- }
- }
- return len(iRunes) < len(jRunes)
- }
|