From 309056648c8263aca388e679179464e59a9f52c8 Mon Sep 17 00:00:00 2001 From: Darren Stahl Date: Tue, 13 Sep 2016 17:50:45 -0700 Subject: [PATCH] Windows: Fix wildcard expansion after slash in filename Signed-off-by: Darren Stahl --- builder/dockerfile/internals.go | 12 ------------ builder/dockerfile/internals_unix.go | 12 ++++++++++++ builder/dockerfile/internals_windows.go | 10 ++++++++++ integration-cli/docker_cli_build_test.go | 5 ++--- 4 files changed, 24 insertions(+), 15 deletions(-) diff --git a/builder/dockerfile/internals.go b/builder/dockerfile/internals.go index 54d3301f9a..c7f61cd3ec 100644 --- a/builder/dockerfile/internals.go +++ b/builder/dockerfile/internals.go @@ -375,18 +375,6 @@ func (b *Builder) calcCopyInfo(cmdName, origPath string, allowLocalDecompression return copyInfos, 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 -} - func (b *Builder) processImageFrom(img builder.Image) error { if img != nil { b.image = img.ImageID() diff --git a/builder/dockerfile/internals_unix.go b/builder/dockerfile/internals_unix.go index 6cd990d892..a8a47c3582 100644 --- a/builder/dockerfile/internals_unix.go +++ b/builder/dockerfile/internals_unix.go @@ -24,3 +24,15 @@ func normaliseDest(cmdName, workingDir, requested string) (string, error) { } 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 +} diff --git a/builder/dockerfile/internals_windows.go b/builder/dockerfile/internals_windows.go index f70360300d..f60b112049 100644 --- a/builder/dockerfile/internals_windows.go +++ b/builder/dockerfile/internals_windows.go @@ -54,3 +54,13 @@ func normaliseDest(cmdName, workingDir, requested string) (string, error) { } return dest, nil } + +func containsWildcards(name string) bool { + for i := 0; i < len(name); i++ { + ch := name[i] + if ch == '*' || ch == '?' || ch == '[' { + return true + } + } + return false +} diff --git a/integration-cli/docker_cli_build_test.go b/integration-cli/docker_cli_build_test.go index 28c9dc09e2..bdb072c421 100644 --- a/integration-cli/docker_cli_build_test.go +++ b/integration-cli/docker_cli_build_test.go @@ -849,7 +849,6 @@ RUN [ $(cat "/test dir/test_file6") = 'test6' ]`, } func (s *DockerSuite) TestBuildCopyWildcard(c *check.C) { - testRequires(c, DaemonIsLinux) // Windows doesn't have httpserver image yet name := "testcopywildcard" server, err := fakeStorage(map[string]string{ "robots.txt": "hello", @@ -863,10 +862,10 @@ func (s *DockerSuite) TestBuildCopyWildcard(c *check.C) { ctx, err := fakeContext(fmt.Sprintf(`FROM busybox COPY file*.txt /tmp/ RUN ls /tmp/file1.txt /tmp/file2.txt - RUN mkdir /tmp1 + RUN [ "mkdir", "/tmp1" ] COPY dir* /tmp1/ RUN ls /tmp1/dirt /tmp1/nested_file /tmp1/nested_dir/nest_nest_file - RUN mkdir /tmp2 + RUN [ "mkdir", "/tmp2" ] ADD dir/*dir %s/robots.txt /tmp2/ RUN ls /tmp2/nest_nest_file /tmp2/robots.txt `, server.URL()),