github.1git.de/docker/cli@v26.1.3+incompatible/cli/command/stack/common.go (about) 1 package stack 2 3 import ( 4 "fmt" 5 "strings" 6 "unicode" 7 ) 8 9 // validateStackName checks if the provided string is a valid stack name (namespace). 10 // It currently only does a rudimentary check if the string is empty, or consists 11 // of only whitespace and quoting characters. 12 func validateStackName(namespace string) error { 13 v := strings.TrimFunc(namespace, quotesOrWhitespace) 14 if v == "" { 15 return fmt.Errorf("invalid stack name: %q", namespace) 16 } 17 return nil 18 } 19 20 func validateStackNames(namespaces []string) error { 21 for _, ns := range namespaces { 22 if err := validateStackName(ns); err != nil { 23 return err 24 } 25 } 26 return nil 27 } 28 29 func quotesOrWhitespace(r rune) bool { 30 return unicode.IsSpace(r) || r == '"' || r == '\'' 31 }