summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Eggleton <paul.eggleton@linux.intel.com>2015-10-02 14:05:08 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2015-10-03 00:01:13 +0100
commit2880bd23b471c1966661b9f05726faf60f9c0e7e (patch)
tree9641fe8177dfbaa4bc276cac90e28e77ba0c15fb
parent7baf57ad896112cf2258b3e2c2a1f8b756fb39bc (diff)
downloadopenembedded-core-contrib-2880bd23b471c1966661b9f05726faf60f9c0e7e.tar.gz
openembedded-core-contrib-2880bd23b471c1966661b9f05726faf60f9c0e7e.tar.bz2
openembedded-core-contrib-2880bd23b471c1966661b9f05726faf60f9c0e7e.zip
recipetool: create: fix change in path structure if --extract-to path exists
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>
-rw-r--r--scripts/lib/recipetool/create.py6
1 files changed, 6 insertions, 0 deletions
diff --git a/scripts/lib/recipetool/create.py b/scripts/lib/recipetool/create.py
index 844073bf59..15aa9bdbb3 100644
--- a/scripts/lib/recipetool/create.py
+++ b/scripts/lib/recipetool/create.py
@@ -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)