12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- package main
- import (
- "fmt"
- "unicode"
- )
- 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" && mode == modeRepo {
- fmt.Printf("%s %s %s\n", bold(yellow(arrow)), cyan(target), bold("Can't use target with option --repo -- skipping"))
- continue
- }
- if db != "aur" && db != "" && mode == modeAUR {
- fmt.Printf("%s %s %s\n", bold(yellow(arrow)), cyan(target), bold("Can't use target with option --aur -- skipping"))
- 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)
- }
|