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  }