diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2013-02-03 17:34:54 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2013-02-06 13:12:59 +0000 |
commit | dd61d225843346f2c4500a54a609e63394f4cc35 (patch) | |
tree | dca2c837bdac2c18e7d7b4a47c9b1eb447040117 /meta/lib/oe | |
parent | 6c7d6d6c8a35568c7e7db6e32fa86825bd2cda65 (diff) | |
download | poky-dd61d225843346f2c4500a54a609e63394f4cc35.tar.gz |
sstate/path.py: Add copyhardlinktree() function and use for performance optimisation
Add a function which copys a tree as a set of hardlinks to the original
files, then use this in sstate to reduce some of the overhead of sstate
package creation since the file isn't actually copied.
(From OE-Core rev: 8e373e69acac853213a62afb8bbdf0adc0c5045a)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/lib/oe')
-rw-r--r-- | meta/lib/oe/path.py | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/meta/lib/oe/path.py b/meta/lib/oe/path.py index 7197b23650..ea58bedc8b 100644 --- a/meta/lib/oe/path.py +++ b/meta/lib/oe/path.py | |||
@@ -83,6 +83,14 @@ def copytree(src, dst): | |||
83 | cmd = 'tar -cf - -C %s -ps . | tar -xf - -C %s' % (src, dst) | 83 | cmd = 'tar -cf - -C %s -ps . | tar -xf - -C %s' % (src, dst) |
84 | check_output(cmd, shell=True, stderr=subprocess.STDOUT) | 84 | check_output(cmd, shell=True, stderr=subprocess.STDOUT) |
85 | 85 | ||
86 | def copyhardlinktree(src, dst): | ||
87 | bb.utils.mkdirhier(dst) | ||
88 | if os.path.isdir(src): | ||
89 | if not len(os.listdir(src)): | ||
90 | return | ||
91 | src = src + "/*" | ||
92 | cmd = 'cp -al %s %s' % (src, dst) | ||
93 | check_output(cmd, shell=True, stderr=subprocess.STDOUT) | ||
86 | 94 | ||
87 | def remove(path, recurse=True): | 95 | def remove(path, recurse=True): |
88 | """Equivalent to rm -f or rm -rf""" | 96 | """Equivalent to rm -f or rm -rf""" |