From 23d6dd1f733e57783cb129e598d99fbe76d758fd Mon Sep 17 00:00:00 2001 From: Paul Eggleton Date: Thu, 16 Nov 2017 16:19:19 +1300 Subject: devtool: refactor return for _extract_source() Use a namedtuple to return information to the caller, since I've been expanding that information we should avoid having to change all of the calling code each time. Additionally, it turned out that a bunch of the callers were checking for None being returned in the initial_rev value, but that's no longer possible, so tidy up the calling code. Signed-off-by: Paul Eggleton --- scripts/lib/devtool/standard.py | 29 ++++++++++------------------- scripts/lib/devtool/upgrade.py | 4 ++-- 2 files changed, 12 insertions(+), 21 deletions(-) diff --git a/scripts/lib/devtool/standard.py b/scripts/lib/devtool/standard.py index 26187a0c41..b1669b5fb4 100644 --- a/scripts/lib/devtool/standard.py +++ b/scripts/lib/devtool/standard.py @@ -29,7 +29,7 @@ import scriptutils import errno import glob import filecmp -from collections import OrderedDict +from collections import OrderedDict, namedtuple from devtool import exec_build_env_command, setup_tinfoil, check_workspace_recipe, use_external_build, setup_git_repo, recipe_to_append, get_bbclassextend_targets, update_unlockedsigs, check_prerelease_version, check_git_repo_dirty, check_git_repo_op, DevtoolError from devtool import parse_recipe @@ -437,15 +437,11 @@ def extract(args, config, basepath, workspace): return 1 srctree = os.path.abspath(args.srctree) - initial_rev, _ = _extract_source(srctree, args.keep_temp, args.branch, False, config, basepath, workspace, args.fixed_setup, rd, tinfoil, no_overrides=args.no_overrides) + _extract_source(srctree, args.keep_temp, args.branch, False, config, basepath, workspace, args.fixed_setup, rd, tinfoil, no_overrides=args.no_overrides) logger.info('Source tree extracted to %s' % srctree) - - if initial_rev: - return 0 - else: - return 1 finally: tinfoil.shutdown() + return 0 def sync(args, config, basepath, workspace): """Entry point for the devtool 'sync' subcommand""" @@ -461,17 +457,15 @@ def sync(args, config, basepath, workspace): return 1 srctree = os.path.abspath(args.srctree) - initial_rev, _ = _extract_source(srctree, args.keep_temp, args.branch, True, config, basepath, workspace, args.fixed_setup, rd, tinfoil, no_overrides=True) + _extract_source(srctree, args.keep_temp, args.branch, True, config, basepath, workspace, args.fixed_setup, rd, tinfoil, no_overrides=True) logger.info('Source tree %s synchronized' % srctree) - - if initial_rev: - return 0 - else: - return 1 finally: tinfoil.shutdown() + return 0 +ExtractSourceResult = namedtuple('ExtractSourceResult', ['initial_rev', 'srcsubdir']) + def _extract_source(srctree, keep_temp, devbranch, sync, config, basepath, workspace, fixed_setup, d, tinfoil, no_overrides=False): """Extract sources of a recipe""" import oe.recipeutils @@ -512,8 +506,6 @@ def _extract_source(srctree, keep_temp, devbranch, sync, config, basepath, works if extra_overrides: logger.info('SRC_URI contains some conditional appends/prepends - will create branches to represent these') - initial_rev = None - appendexisted = False recipefile = d.getVar('FILE') appendfile = recipe_to_append(recipefile, config) @@ -659,7 +651,7 @@ def _extract_source(srctree, keep_temp, devbranch, sync, config, basepath, works logger.info('Preserving temporary directory %s' % tempdir) else: shutil.rmtree(tempdir) - return initial_rev, srcsubdir_rel + return ExtractSourceResult(initial_rev, srcsubdir_rel) def _add_md5(config, recipename, filename): """Record checksum of a file (or recursively for a directory) to the md5-file of the workspace""" @@ -759,9 +751,8 @@ def modify(args, config, basepath, workspace): commits = [] check_commits = False if not args.no_extract: - initial_rev, _ = _extract_source(srctree, args.keep_temp, args.branch, False, config, basepath, workspace, args.fixed_setup, rd, tinfoil, no_overrides=args.no_overrides) - if not initial_rev: - return 1 + ret = _extract_source(srctree, args.keep_temp, args.branch, False, config, basepath, workspace, args.fixed_setup, rd, tinfoil, no_overrides=args.no_overrides) + initial_rev = ret.initial_rev logger.info('Source tree extracted to %s' % srctree) # Get list of commits since this revision (stdout, _) = bb.process.run('git rev-list --reverse %s..HEAD' % initial_rev, cwd=srctree) diff --git a/scripts/lib/devtool/upgrade.py b/scripts/lib/devtool/upgrade.py index f6141bfdc3..7afdd80e5e 100644 --- a/scripts/lib/devtool/upgrade.py +++ b/scripts/lib/devtool/upgrade.py @@ -474,12 +474,12 @@ def upgrade(args, config, basepath, workspace): rf = None try: logger.info('Extracting current version source...') - rev1, srcsubdir1 = standard._extract_source(srctree, False, 'devtool-orig', False, config, basepath, workspace, args.fixed_setup, rd, tinfoil, no_overrides=args.no_overrides) + current_ret = standard._extract_source(srctree, False, 'devtool-orig', False, config, basepath, workspace, args.fixed_setup, rd, tinfoil, no_overrides=args.no_overrides) logger.info('Extracting upgraded version source...') rev2, md5, sha256, srcbranch, srcsubdir2 = _extract_new_source(args.version, srctree, args.no_patch, args.srcrev, args.srcbranch, args.branch, args.keep_temp, tinfoil, rd) - rf, copied = _create_new_recipe(args.version, md5, sha256, args.srcrev, srcbranch, srcsubdir1, srcsubdir2, config.workspace_path, tinfoil, rd) + rf, copied = _create_new_recipe(args.version, md5, sha256, args.srcrev, srcbranch, current_ret.srcsubdir, srcsubdir2, config.workspace_path, tinfoil, rd) except bb.process.CmdError as e: _upgrade_error(e, rf, srctree) except DevtoolError as e: -- cgit 1.2.3-korg