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.

(From OE-Core rev: 664d1a7fe8f8288fabc582d00f6e36ab29496ec5)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Paul Eggleton 2015-02-19 16:39:57 +00:00 committed by Richard Purdie
parent 8e7437b3f0
commit 845efa450c
2 changed files with 10 additions and 0 deletions

View File

@ -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

View File

@ -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)