github.com/metasources/buildx@v0.0.0-20230418141019-7aa1459cedea/internal/string_helpers.go (about)

     1  package internal
     2  
     3  import "strings"
     4  
     5  // HasAnyOfPrefixes returns an indication if the given string has any of the given prefixes.
     6  func HasAnyOfPrefixes(input string, prefixes ...string) bool {
     7  	for _, prefix := range prefixes {
     8  		if strings.HasPrefix(input, prefix) {
     9  			return true
    10  		}
    11  	}
    12  
    13  	return false
    14  }
    15  
    16  func TruncateMiddleEllipsis(input string, maxLen int) string {
    17  	if len(input) <= maxLen {
    18  		return input
    19  	}
    20  	return input[:maxLen/2] + "..." + input[len(input)-(maxLen/2):]
    21  }
    22  
    23  func StringInSlice(a string, list []string) bool {
    24  	for _, b := range list {
    25  		if b == a {
    26  			return true
    27  		}
    28  	}
    29  	return false
    30  }
    31  
    32  func SplitAny(s string, seps string) []string {
    33  	splitter := func(r rune) bool {
    34  		return strings.ContainsRune(seps, r)
    35  	}
    36  	return strings.FieldsFunc(s, splitter)
    37  }