// +build !windows package dockerfile import ( "os" "path/filepath" "strings" "github.com/docker/docker/pkg/system" ) // normaliseDest normalises the destination of a COPY/ADD command in a // platform semantically consistent way. func normaliseDest(cmdName, workingDir, requested string) (string, error) { dest := filepath.FromSlash(requested) endsInSlash := strings.HasSuffix(requested, string(os.PathSeparator)) if !system.IsAbs(requested) { dest = filepath.Join(string(os.PathSeparator), filepath.FromSlash(workingDir), dest) // Make sure we preserve any trailing slash if endsInSlash { dest += string(os.PathSeparator) } } return dest, nil } func containsWildcards(name string) bool { for i := 0; i < len(name); i++ { ch := name[i] if ch == '\\' { i++ } else if ch == '*' || ch == '?' || ch == '[' { return true } } return false }