summaryrefslogtreecommitdiff
path: root/bcp
diff options
context:
space:
mode:
authorcwillu <cwillu@cwillu.com>2011-06-13 16:24:11 -0600
committerChris Mason <chris.mason@oracle.com>2011-10-25 09:18:58 -0400
commit796a0e9cc46a0d173a7bbcbeb792ca80f00bf19e (patch)
tree3ebc2e2b2c84792a8090d00a676673b9a8d47afc /bcp
parent48d29930ed29bc92ac5ea08cb72553896d2f7da5 (diff)
Btrfs-progs: Correct path munging in bcp
Bcp was assuming that a path on the command line would never have a slash after it, which is silly, and would cause the first letter of everything in the root of the source to be truncated. Instead, use os.path.relpath to handle it properly. Signed-off-by: Carey Underwood <cwillu@cwillu.com> Signed-off-by: Hugo Mills <hugo@carfax.org.uk>
Diffstat (limited to 'bcp')
-rwxr-xr-xbcp6
1 files changed, 2 insertions, 4 deletions
diff --git a/bcp b/bcp
index 5729e91e..e7ca641a 100755
--- a/bcp
+++ b/bcp
@@ -136,8 +136,7 @@ for srci in xrange(0, src_args):
srcname = os.path.join(dirpath, x)
statinfo = os.lstat(srcname)
- if srcname.startswith(src):
- part = srcname[len(src) + 1:]
+ part = os.path.relpath(srcname, src)
if stat.S_ISLNK(statinfo.st_mode):
copylink(srcname, dst, part, statinfo, None)
@@ -152,8 +151,7 @@ for srci in xrange(0, src_args):
for f in filenames:
srcname = os.path.join(dirpath, f)
- if srcname.startswith(src):
- part = srcname[len(src) + 1:]
+ part = os.path.relpath(srcname, src)
statinfo = os.lstat(srcname)
copyfile(srcname, dst, part, statinfo, None)