Skip to contentSkip to conversation

devtool: use cp instead of shutil.copytree

PATCH New Ed Bartosh 1 participant 1 message Dec 18, 2015

lore
Share & tools
lore

Ed Bartosh

author
#0 lore raw

PATCH 1/1 devtool: use cp instead of shutil.copytree

Copied layers with 'cp -a' instead of calling shutil.copytree as copytree fails to copy broken symlinks.

More pythonic fix would be to use copytree with 'ignore' parameter, but this could slow down copying complex directory structures.

[YOCTO #8825]

---
 scripts/lib/devtool/sdk.py | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
scripts/lib/devtool/sdk.py +4 -1
index 85c0fb1..906038e 100644
@@ -132,7 +132,10 @@ def sdk_update(args, config, basepath, workspace):
         new_layers_dir = os.path.join(args.updateserver, 'layers')
         old_layers_dir = os.path.join(basepath, 'layers')
         shutil.rmtree(old_layers_dir)
-        shutil.copytree(new_layers_dir, old_layers_dir)
+        ret = subprocess.call("cp -a %s %s" % (new_layers_dir, old_layers_dir), shell=True)
+        if ret != 0:
+            logger.error("Copying %s to %s failed" % (new_layers_dir, old_layers_dir))
+            return ret
     else:
         # devtool sdk-update http://myhost/sdk
         tmpsdk_dir = '/tmp/sdk-ext'
Signature · 1 line
2.1.4