diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2012-10-11 13:36:53 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2012-10-18 12:13:46 +0100 |
commit | 81be7c898b01afcf61b019466306fa776b1e6334 (patch) | |
tree | ccf5c7656cdc1409c5dee40e976b2aecdbcd3451 /scripts/cp-noerror | |
parent | e8338b7b143a451be7dc56c9acef7e5dbf2220b8 (diff) | |
download | poky-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-x | scripts/cp-noerror | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/scripts/cp-noerror b/scripts/cp-noerror index f0cd243586..474f7aa80a 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: |