]> code.ossystems Code Review - openembedded-core.git/commitdiff
recipetool: create: fix change in path structure if --extract-to path exists
authorPaul Eggleton <paul.eggleton@linux.intel.com>
Fri, 2 Oct 2015 13:05:08 +0000 (14:05 +0100)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 2 Oct 2015 23:01:13 +0000 (00:01 +0100)
If the directory specified by --extract-to exists, because we were using
shutil.move() to move the temporary extracted directory to the specified
path, a subdirectory was being created under that directory instead of
moving the contents, which was a different result than if the directory
didn't previously exist. We could try to always move the contents but
that's complicated when any symlinks are involved; the simplest thing is
just to remove the directory (which should be empty anyway) before
moving the temporary directory across in its place.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
scripts/lib/recipetool/create.py

index 844073bf59d56be0b8364b1bbee8f1f5fcbbae3b..15aa9bdbb36a2dc92d443682e800e3c25f0012c7 100644 (file)
@@ -260,6 +260,12 @@ def create_recipe(args):
 
     if args.extract_to:
         scriptutils.git_convert_standalone_clone(srctree)
+        if os.path.isdir(args.extract_to):
+            # If the directory exists we'll move the temp dir into it instead of
+            # its contents - of course, we could try to always move its contents
+            # but that is a pain if there are symlinks; the simplest solution is
+            # to just remove it first
+            os.rmdir(args.extract_to)
         shutil.move(srctree, args.extract_to)
         logger.info('Source extracted to %s' % args.extract_to)