* Fix #3032: Remove query parameters in ADD command when the destination is a directory * fixing linter URL sorry forget to lint * add error in extractFilename and realize that ResolveEnvironmentReplacement better execute before getting the filename
This commit is contained in:
parent
9095b45d5c
commit
02f488a694
|
|
@ -216,11 +216,17 @@ func URLDestinationFilepath(rawurl, dest, cwd string, envs []string) (string, er
|
||||||
}
|
}
|
||||||
return dest, nil
|
return dest, nil
|
||||||
}
|
}
|
||||||
urlBase := filepath.Base(rawurl)
|
|
||||||
urlBase, err := ResolveEnvironmentReplacement(urlBase, envs, true)
|
urlBase, err := ResolveEnvironmentReplacement(rawurl, envs, true)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
urlBase, err = extractFilename(urlBase)
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
|
||||||
destPath := filepath.Join(dest, urlBase)
|
destPath := filepath.Join(dest, urlBase)
|
||||||
|
|
||||||
if !filepath.IsAbs(dest) {
|
if !filepath.IsAbs(dest) {
|
||||||
|
|
@ -470,3 +476,13 @@ func getUID(userStr string) (uint32, error) {
|
||||||
}
|
}
|
||||||
return uint32(uid), nil
|
return uint32(uid), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ExtractFilename extracts the filename from a URL without its query url
|
||||||
|
func extractFilename(rawURL string) (string, error) {
|
||||||
|
parsedURL, err := url.Parse(rawURL)
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
filename := filepath.Base(parsedURL.Path)
|
||||||
|
return filename, nil
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -226,6 +226,12 @@ var urlDestFilepathTests = []struct {
|
||||||
dest: "/test",
|
dest: "/test",
|
||||||
expectedDest: "/test",
|
expectedDest: "/test",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
url: "https://something/something.tar?foo=bar",
|
||||||
|
cwd: "/cwd",
|
||||||
|
dest: "/dir/",
|
||||||
|
expectedDest: "/dir/something.tar",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
url: "https://something/something",
|
url: "https://something/something",
|
||||||
cwd: "/test",
|
cwd: "/test",
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue