summaryrefslogtreecommitdiffstats
path: root/scripts/lib
diff options
context:
space:
mode:
authorPaul Eggleton <paul.eggleton@linux.intel.com>2016-01-07 00:15:51 +1300
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-01-11 15:41:46 +0000
commit99e3872d89432566f0b46347c0d0c2b9177eddf7 (patch)
treeac56e4f35c3d1cf719f35cca175038329060ba28 /scripts/lib
parent5ef716c2807ca7d6b5e8ef2fb8da3fedb523c03c (diff)
downloadpoky-99e3872d89432566f0b46347c0d0c2b9177eddf7.tar.gz
devtool: reset: do clean for multiple recipes at once with -a
We need to run the clean for all recipes that are being reset before we start deleting things from the workspace; if we don't, recipes providing dependencies may be missing when we come to clean a recipe later (since we don't and couldn't practically reset them in dependency order). This also improves performance since we have the startup startup time for the clean just once rather than for every recipe. (From OE-Core rev: c10a2de75a99410eb5338dd6da0e0b0e32bae6f5) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'scripts/lib')
-rw-r--r--scripts/lib/devtool/standard.py25
1 files changed, 14 insertions, 11 deletions
diff --git a/scripts/lib/devtool/standard.py b/scripts/lib/devtool/standard.py
index fbc49a9777..741f0ea91b 100644
--- a/scripts/lib/devtool/standard.py
+++ b/scripts/lib/devtool/standard.py
@@ -1196,21 +1196,24 @@ def reset(args, config, basepath, workspace):
1196 raise DevtoolError("Recipe must be specified, or specify -a/--all to " 1196 raise DevtoolError("Recipe must be specified, or specify -a/--all to "
1197 "reset all recipes") 1197 "reset all recipes")
1198 if args.all: 1198 if args.all:
1199 recipes = workspace 1199 recipes = workspace.keys()
1200 else: 1200 else:
1201 recipes = [args.recipename] 1201 recipes = [args.recipename]
1202 1202
1203 for pn in recipes: 1203 if recipes and not args.no_clean:
1204 if not args.no_clean: 1204 if len(recipes) == 1:
1205 logger.info('Cleaning sysroot for recipe %s...' % pn) 1205 logger.info('Cleaning sysroot for recipe %s...' % recipes[0])
1206 try: 1206 else:
1207 exec_build_env_command(config.init_path, basepath, 'bitbake -c clean %s' % pn) 1207 logger.info('Cleaning sysroot for recipes %s...' % ', '.join(recipes))
1208 except bb.process.ExecutionError as e: 1208 try:
1209 raise DevtoolError('Command \'%s\' failed, output:\n%s\nIf you ' 1209 exec_build_env_command(config.init_path, basepath, 'bitbake -c clean %s' % ' '.join(recipes))
1210 'wish, you may specify -n/--no-clean to ' 1210 except bb.process.ExecutionError as e:
1211 'skip running this command when resetting' % 1211 raise DevtoolError('Command \'%s\' failed, output:\n%s\nIf you '
1212 (e.command, e.stdout)) 1212 'wish, you may specify -n/--no-clean to '
1213 'skip running this command when resetting' %
1214 (e.command, e.stdout))
1213 1215
1216 for pn in recipes:
1214 _check_preserve(config, pn) 1217 _check_preserve(config, pn)
1215 1218
1216 preservepath = os.path.join(config.workspace_path, 'attic', pn) 1219 preservepath = os.path.join(config.workspace_path, 'attic', pn)