summaryrefslogtreecommitdiffstats
path: root/scripts/cp-noerror
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2012-10-11 12:36:53 (GMT)
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-10-18 11:13:46 (GMT)
commit81be7c898b01afcf61b019466306fa776b1e6334 (patch)
treeccf5c7656cdc1409c5dee40e976b2aecdbcd3451 /scripts/cp-noerror
parente8338b7b143a451be7dc56c9acef7e5dbf2220b8 (diff)
downloadpoky-81be7c898b01afcf61b019466306fa776b1e6334.tar.gz
scripts/cp-noerror: Try and use hardlinks if possible
Since we generally have lots of copies of the directories created using this tool, use hardlinks where possible. This should save a little disk space and improve performance slightly. (From OE-Core rev: bfa11c028c2da093f7b4e6b7b1d611da90ae052f) (From OE-Core rev: 8c5544c2311b080bb212efb7f6b804db63e125f5) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'scripts/cp-noerror')
-rwxr-xr-xscripts/cp-noerror10
1 files changed, 9 insertions, 1 deletions
diff --git a/scripts/cp-noerror b/scripts/cp-noerror
index f0cd243..474f7aa 100755
--- a/scripts/cp-noerror
+++ b/scripts/cp-noerror
@@ -21,7 +21,15 @@ def copytree(src, dst, symlinks=False, ignore=None):
21 srcname = os.path.join(src, name) 21 srcname = os.path.join(src, name)
22 dstname = os.path.join(dst, name) 22 dstname = os.path.join(dst, name)
23 try: 23 try:
24 shutil.copy2(srcname, dstname) 24 d = dstname
25 if os.path.isdir(dstname):
26 d = os.path.join(dstname, os.path.basename(srcname))
27 if os.path.exists(d):
28 continue
29 try:
30 os.link(srcname, dstname)
31 except OSError:
32 shutil.copy2(srcname, dstname)
25 # catch the Error from the recursive copytree so that we can 33 # catch the Error from the recursive copytree so that we can
26 # continue with other files 34 # continue with other files
27 except shutil.Error, err: 35 except shutil.Error, err: