From 664d1a7fe8f8288fabc582d00f6e36ab29496ec5 Mon Sep 17 00:00:00 2001 From: Paul Eggleton Date: Thu, 19 Feb 2015 16:39:57 +0000 Subject: devtool: reset: run bitbake -c clean on recipe If you've added a new recipe, you want the output cleaned when you do devtool reset, otherwise cruft from building the recipe may remain which could interfere with future builds. Signed-off-by: Paul Eggleton Signed-off-by: Richard Purdie --- meta/lib/oeqa/selftest/devtool.py | 4 ++++ scripts/lib/devtool/standard.py | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/meta/lib/oeqa/selftest/devtool.py b/meta/lib/oeqa/selftest/devtool.py index 74fb325803..33f2e91607 100644 --- a/meta/lib/oeqa/selftest/devtool.py +++ b/meta/lib/oeqa/selftest/devtool.py @@ -179,9 +179,13 @@ class DevtoolTests(oeSelfTest): if line.startswith('.TH'): self.assertEqual(line.rstrip(), '.TH MDADM 8 "" v9.999-custom', 'man file not modified') # Test devtool reset + stampprefix = get_bb_var('STAMP', 'mdadm') result = runCmd('devtool reset mdadm') result = runCmd('devtool status') self.assertNotIn('mdadm', result.output) + self.assertTrue(stampprefix, 'Unable to get STAMP value for recipe mdadm') + matches = glob.glob(stampprefix + '*') + self.assertFalse(matches, 'Stamp files exist for recipe mdadm that should have been cleaned') def test_devtool_update_recipe(self): # Check preconditions diff --git a/scripts/lib/devtool/standard.py b/scripts/lib/devtool/standard.py index d503111d85..763177de1c 100644 --- a/scripts/lib/devtool/standard.py +++ b/scripts/lib/devtool/standard.py @@ -475,6 +475,11 @@ def reset(args, config, basepath, workspace): if not args.recipename in workspace: logger.error("no recipe named %s in your workspace" % args.recipename) return -1 + + if not args.no_clean: + logger.info('Cleaning sysroot for recipe %s...' % args.recipename) + exec_build_env_command(config.init_path, basepath, 'bitbake -c clean %s' % args.recipename) + _check_preserve(config, args.recipename) preservepath = os.path.join(config.workspace_path, 'attic', args.recipename) @@ -555,5 +560,6 @@ def register_commands(subparsers, context): description='Removes the specified recipe from your workspace (resetting its state)', formatter_class=argparse.ArgumentDefaultsHelpFormatter) parser_reset.add_argument('recipename', help='Recipe to reset') + parser_reset.add_argument('--no-clean', '-n', action="store_true", help='Don\'t clean the sysroot to remove recipe output') parser_reset.set_defaults(func=reset) -- cgit 1.2.3-korg