diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2019-10-31 18:03:59 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-10-31 18:03:59 +0100 |
commit | 5af166ff513265b17aee92a9ce3a1522090d7dec (patch) | |
tree | 0dd58edd86d7ffdd4e6d50a7c75f99ee35065594 | |
parent | 1b3e79dfef946de8dfac6a81ad5fb6e4333ce8f8 (diff) | |
parent | 43c2c639541b6aa60134e81b3ab17ded7e3f01c1 (diff) | |
download | podman-5af166ff513265b17aee92a9ce3a1522090d7dec.tar.gz podman-5af166ff513265b17aee92a9ce3a1522090d7dec.tar.bz2 podman-5af166ff513265b17aee92a9ce3a1522090d7dec.zip |
Merge pull request #4382 from AlekseyChudov/master
Podman cp does not work when stdin is a pipe
-rw-r--r-- | cmd/podman/cp.go | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/cmd/podman/cp.go b/cmd/podman/cp.go index 75a23afd6..c53a97df3 100644 --- a/cmd/podman/cp.go +++ b/cmd/podman/cp.go @@ -257,8 +257,15 @@ func parsePath(runtime *libpod.Runtime, path string) (*libpod.Container, string) return nil, path } +func evalSymlinks(path string) (string, error) { + if path == os.Stdin.Name() { + return path, nil + } + return filepath.EvalSymlinks(path) +} + func getPathInfo(path string) (string, os.FileInfo, error) { - path, err := filepath.EvalSymlinks(path) + path, err := evalSymlinks(path) if err != nil { return "", nil, errors.Wrapf(err, "error evaluating symlinks %q", path) } @@ -270,7 +277,7 @@ func getPathInfo(path string) (string, os.FileInfo, error) { } func copy(src, destPath, dest string, idMappingOpts storage.IDMappingOptions, chownOpts *idtools.IDPair, extract, isFromHostToCtr bool) error { - srcPath, err := filepath.EvalSymlinks(src) + srcPath, err := evalSymlinks(src) if err != nil { return errors.Wrapf(err, "error evaluating symlinks %q", srcPath) } |