comparison mercurial/util.py @ 1207:a7b8812973d9

Rewrite copytree as copyfiles This inverts the logic of copytree to allow copying single files at the top level.
author mpm@selenic.com
date Wed, 07 Sep 2005 19:21:38 -0700
parents 333de1d53846
children 3b4f05ff3130
comparison
equal deleted inserted replaced
1206:6512d352d6c1 1207:a7b8812973d9
215 os.rename(src, dst) 215 os.rename(src, dst)
216 except: 216 except:
217 os.unlink(dst) 217 os.unlink(dst)
218 os.rename(src, dst) 218 os.rename(src, dst)
219 219
220 def copytree(src, dst, copyfile): 220 def copyfiles(src, dst, copyfile):
221 """Copy a directory tree, files are copied using 'copyfile'.""" 221 """Copy a directory tree, files are copied using 'copyfile'."""
222 names = os.listdir(src) 222
223 os.mkdir(dst) 223 if os.path.isdir(src):
224 224 os.mkdir(dst)
225 for name in names: 225 for name in os.listdir(src):
226 srcname = os.path.join(src, name) 226 srcname = os.path.join(src, name)
227 dstname = os.path.join(dst, name) 227 dstname = os.path.join(dst, name)
228 if os.path.isdir(srcname): 228 copyfiles(srcname, dstname, copyfile)
229 copytree(srcname, dstname, copyfile) 229 else:
230 elif os.path.isfile(srcname): 230 copyfile(src, dst)
231 copyfile(srcname, dstname)
232 else:
233 pass
234 231
235 def opener(base): 232 def opener(base):
236 """ 233 """
237 return a function that opens files relative to base 234 return a function that opens files relative to base
238 235