summaryrefslogtreecommitdiff
path: root/cmd/podman/cp.go
diff options
context:
space:
mode:
authorQi Wang <qiwan@redhat.com>2019-06-20 17:43:40 -0400
committerQi Wang <qiwan@redhat.com>2019-06-20 17:52:12 -0400
commitc962d214e6156bd4d89e0eb20246549eca272ba7 (patch)
treee3de4fb063f97d789229207544643edcae94ea99 /cmd/podman/cp.go
parentf65ddc09914050275eb8ddc0b8f805d2cdd3be46 (diff)
downloadpodman-c962d214e6156bd4d89e0eb20246549eca272ba7.tar.gz
podman-c962d214e6156bd4d89e0eb20246549eca272ba7.tar.bz2
podman-c962d214e6156bd4d89e0eb20246549eca272ba7.zip
fix bug creats directory copying file
close #3384 Signed-off-by: Qi Wang <qiwan@redhat.com>
Diffstat (limited to 'cmd/podman/cp.go')
-rw-r--r--cmd/podman/cp.go23
1 files changed, 8 insertions, 15 deletions
diff --git a/cmd/podman/cp.go b/cmd/podman/cp.go
index a9418e6e0..efe343bfd 100644
--- a/cmd/podman/cp.go
+++ b/cmd/podman/cp.go
@@ -326,20 +326,6 @@ func copy(src, destPath, dest string, idMappingOpts storage.IDMappingOptions, ch
}
return nil
}
- if !archive.IsArchivePath(srcPath) {
- // This srcPath is a file, and either it's not an
- // archive, or we don't care whether or not it's an
- // archive.
- destfi, err := os.Stat(destPath)
- if err != nil {
- if !os.IsNotExist(err) {
- return errors.Wrapf(err, "failed to get stat of dest path %s", destPath)
- }
- }
- if destfi != nil && destfi.IsDir() {
- destPath = filepath.Join(destPath, filepath.Base(srcPath))
- }
- }
if extract {
// We're extracting an archive into the destination directory.
@@ -350,9 +336,16 @@ func copy(src, destPath, dest string, idMappingOpts storage.IDMappingOptions, ch
return nil
}
- if destDirIsExist || strings.HasSuffix(dest, string(os.PathSeparator)) {
+ destfi, err := os.Stat(destPath)
+ if err != nil {
+ if !os.IsNotExist(err) {
+ return errors.Wrapf(err, "failed to get stat of dest path %s", destPath)
+ }
+ }
+ if destfi != nil && destfi.IsDir() {
destPath = filepath.Join(destPath, filepath.Base(srcPath))
}
+
// Copy the file, preserving attributes.
logrus.Debugf("copying %q to %q", srcPath, destPath)
if err = copyFileWithTar(srcPath, destPath); err != nil {