]> code.ossystems Code Review - openembedded-core.git/commitdiff
devtool: use cp instead of shutil.copytree
authorEd Bartosh <ed.bartosh@linux.intel.com>
Fri, 18 Dec 2015 11:46:31 +0000 (13:46 +0200)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Mon, 28 Dec 2015 09:24:54 +0000 (09:24 +0000)
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]

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
scripts/lib/devtool/sdk.py

index f08f0eee7c59a93281a2da81479e410b617daddc..47b9a7e1fcc451d5503bbfef36a5f850815662a0 100644 (file)
@@ -128,7 +128,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'