diff options
Diffstat (limited to 'scripts/lib/devtool/upgrade.py')
-rw-r--r-- | scripts/lib/devtool/upgrade.py | 28 |
1 files changed, 13 insertions, 15 deletions
diff --git a/scripts/lib/devtool/upgrade.py b/scripts/lib/devtool/upgrade.py index 0357ec07bf..c57015eb40 100644 --- a/scripts/lib/devtool/upgrade.py +++ b/scripts/lib/devtool/upgrade.py | |||
@@ -119,20 +119,19 @@ def _write_append(rc, srctree, same_dir, no_same_dir, rev, copied, workspace, d) | |||
119 | f.write('# original_files: %s\n' % ' '.join(copied)) | 119 | f.write('# original_files: %s\n' % ' '.join(copied)) |
120 | return af | 120 | return af |
121 | 121 | ||
122 | def _cleanup_on_error(rf, srctree): | 122 | def _cleanup_on_error(rd, srctree): |
123 | rfp = os.path.split(rf)[0] # recipe folder | 123 | rdp = os.path.split(rd)[0] # recipes folder |
124 | rfpp = os.path.split(rfp)[0] # recipes folder | 124 | if os.path.exists(rd): |
125 | if os.path.exists(rfp): | 125 | shutil.rmtree(rd) |
126 | shutil.rmtree(rfp) | 126 | if not len(os.listdir(rdp)): |
127 | if not len(os.listdir(rfpp)): | 127 | os.rmdir(rdp) |
128 | os.rmdir(rfpp) | ||
129 | srctree = os.path.abspath(srctree) | 128 | srctree = os.path.abspath(srctree) |
130 | if os.path.exists(srctree): | 129 | if os.path.exists(srctree): |
131 | shutil.rmtree(srctree) | 130 | shutil.rmtree(srctree) |
132 | 131 | ||
133 | def _upgrade_error(e, rf, srctree, keep_failure=False, extramsg=None): | 132 | def _upgrade_error(e, rd, srctree, keep_failure=False, extramsg=None): |
134 | if rf and not keep_failure: | 133 | if not keep_failure: |
135 | _cleanup_on_error(rf, srctree) | 134 | _cleanup_on_error(rd, srctree) |
136 | logger.error(e) | 135 | logger.error(e) |
137 | if extramsg: | 136 | if extramsg: |
138 | logger.error(extramsg) | 137 | logger.error(extramsg) |
@@ -426,7 +425,7 @@ def _create_new_recipe(newpv, md5, sha256, srcrev, srcbranch, srcsubdir_old, src | |||
426 | try: | 425 | try: |
427 | rd = tinfoil.parse_recipe_file(fullpath, False) | 426 | rd = tinfoil.parse_recipe_file(fullpath, False) |
428 | except bb.tinfoil.TinfoilCommandFailed as e: | 427 | except bb.tinfoil.TinfoilCommandFailed as e: |
429 | _upgrade_error(e, fullpath, srctree, keep_failure, 'Parsing of upgraded recipe failed') | 428 | _upgrade_error(e, os.path.dirname(fullpath), srctree, keep_failure, 'Parsing of upgraded recipe failed') |
430 | oe.recipeutils.patch_recipe(rd, fullpath, newvalues) | 429 | oe.recipeutils.patch_recipe(rd, fullpath, newvalues) |
431 | 430 | ||
432 | return fullpath, copied | 431 | return fullpath, copied |
@@ -568,10 +567,9 @@ def upgrade(args, config, basepath, workspace): | |||
568 | new_licenses = _extract_licenses(srctree_s, (rd.getVar('LIC_FILES_CHKSUM') or "")) | 567 | new_licenses = _extract_licenses(srctree_s, (rd.getVar('LIC_FILES_CHKSUM') or "")) |
569 | license_diff = _generate_license_diff(old_licenses, new_licenses) | 568 | license_diff = _generate_license_diff(old_licenses, new_licenses) |
570 | rf, copied = _create_new_recipe(args.version, md5, sha256, args.srcrev, srcbranch, srcsubdir1, srcsubdir2, config.workspace_path, tinfoil, rd, license_diff, new_licenses, srctree, args.keep_failure) | 569 | rf, copied = _create_new_recipe(args.version, md5, sha256, args.srcrev, srcbranch, srcsubdir1, srcsubdir2, config.workspace_path, tinfoil, rd, license_diff, new_licenses, srctree, args.keep_failure) |
571 | except bb.process.CmdError as e: | 570 | except (bb.process.CmdError, DevtoolError) as e: |
572 | _upgrade_error(e, rf, srctree, args.keep_failure) | 571 | recipedir = os.path.join(config.workspace_path, 'recipes', rd.getVar('BPN')) |
573 | except DevtoolError as e: | 572 | _upgrade_error(e, recipedir, srctree, args.keep_failure) |
574 | _upgrade_error(e, rf, srctree, args.keep_failure) | ||
575 | standard._add_md5(config, pn, os.path.dirname(rf)) | 573 | standard._add_md5(config, pn, os.path.dirname(rf)) |
576 | 574 | ||
577 | af = _write_append(rf, srctree_s, args.same_dir, args.no_same_dir, rev2, | 575 | af = _write_append(rf, srctree_s, args.same_dir, args.no_same_dir, rev2, |