summaryrefslogtreecommitdiffstats
path: root/meta/lib/oe/path.py
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2013-02-03 17:34:54 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2013-02-06 13:12:59 +0000
commitdd61d225843346f2c4500a54a609e63394f4cc35 (patch)
treedca2c837bdac2c18e7d7b4a47c9b1eb447040117 /meta/lib/oe/path.py
parent6c7d6d6c8a35568c7e7db6e32fa86825bd2cda65 (diff)
downloadpoky-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/path.py')
-rw-r--r--meta/lib/oe/path.py8
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
86def 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
87def remove(path, recurse=True): 95def remove(path, recurse=True):
88 """Equivalent to rm -f or rm -rf""" 96 """Equivalent to rm -f or rm -rf"""