On Tue, Oct 8, 2019 at 10:37 AM Peter Kjellerstedt < [email protected]> wrote:
> > -----Original Message----- > > From: [email protected] <openembedded- > > [email protected]> On Behalf Of Chandana Kalluri > > Sent: den 8 oktober 2019 04:14 > > To: Paul Eggleton <[email protected]> > > Cc: Patches and discussions about the oe-core layer <openembedded- > > [email protected]> > > Subject: Re: [OE-core] [OE-Core][master][PATCH] devtool: Add --remove- > > work option for devtool reset command > > > > Hi Paul, > > > > Any thoughts on implementing this as a separate command as suggested > > by Khem? > > For what it's worth, I think the original suggested solution with a new > option to the existing `devtool reset` and `devtool finish` commands is > the better one. Yeah thinking about it again we already have two commands which would need same functionality it’s not good to introduce a third one although I think the usability of current solution will be a bit nicer if it was independent option > > > > > -----Original Message----- > > > From: Khem Raj <[email protected]> > > > Sent: Monday, October 7, 2019 11:40 AM > > > To: Chandana Kalluri <[email protected]> > > > Cc: Patches and discussions about the oe-core layer <openembedded- > > > [email protected]> > > > Subject: Re: [OE-core] [OE-Core][master][PATCH] devtool: Add -- > > remove-work > > > option for devtool reset command > > > > > > On Mon, Oct 7, 2019 at 11:36 AM Sai Hari Chandana Kalluri > > > <[email protected]> wrote: > > > > > > > > Enable --remove-work option for devtool reset command that allows > > user > > > > to clean up source directory within workspace. > > > > > > > > Currently devtool reset command only removes recipes and user is > > > > forced to manually remove the sources directory within the > > workspace > > > > before running devtool modify again. > > > > > > > > Using devtool reset -r or devtool reset --remove-work option, user > > can > > > > cleanup the sources directory along with the recipe instead of > > > > manually cleaning it. > > > > > > perhaps we can have another cmd like "reset-all" like cleanall ? > > > which would remove everything that devtool did external to bblayers > > for that > > > recipe. > > > > > > > > > > > syntax: devtool reset -r <recipename> > > > > Ex: devtool reset -r zip > > > > > > > > devtool finish -r <recipename> <layer-name> > > > > Ex: devtool finish -r zip meta-yocto-bsp > > > > > > > > Signed-off-by: Sai Hari Chandana Kalluri > > <[email protected]> > > > > --- > > > > scripts/lib/devtool/standard.py | 26 +++++++++++++++++++------- > > > > 1 file changed, 19 insertions(+), 7 deletions(-) > > > > > > > > diff --git a/scripts/lib/devtool/standard.py > > > > b/scripts/lib/devtool/standard.py index 60c9a04..1c0cd8a 100644 > > > > --- a/scripts/lib/devtool/standard.py > > > > +++ b/scripts/lib/devtool/standard.py > > > > @@ -1852,7 +1852,7 @@ def status(args, config, basepath, > > workspace): > > > > return 0 > > > > > > > > > > > > -def _reset(recipes, no_clean, config, basepath, workspace): > > > > +def _reset(recipes, no_clean, remove_work, config, basepath, > > workspace): > > > > """Reset one or more recipes""" > > > > import oe.path > > > > > > > > @@ -1930,10 +1930,15 @@ def _reset(recipes, no_clean, config, > > basepath, > > > workspace): > > > > srctreebase = workspace[pn]['srctreebase'] > > > > if os.path.isdir(srctreebase): > > > > if os.listdir(srctreebase): > > > > - # We don't want to risk wiping out any work in > > progress > > > > - logger.info('Leaving source tree %s as-is; if you > > no ' > > > > - 'longer need it then please delete it > > manually' > > > > - % srctreebase) > > > > + if remove_work: > > > > + logger.info('-r argument used on %s, > > removing source tree.' > > > > + ' You will lose any unsaved > > work' %pn) > > > > + shutil.rmtree(srctreebase) > > > > + else: > > > > + # We don't want to risk wiping out any > > work in progress > > > > + logger.info('Leaving source tree %s as-is; > > if you no ' > > > > + 'longer need it then please > > delete it manually' > > > > + % srctreebase) > > > > else: > > > > # This is unlikely, but if it's empty we can just > > remove it > > > > os.rmdir(srctreebase) @@ -1943,6 +1948,10 @@ def > > > > _reset(recipes, no_clean, config, basepath, workspace): > > > > def reset(args, config, basepath, workspace): > > > > """Entry point for the devtool 'reset' subcommand""" > > > > import bb > > > > + import shutil > > > > + > > > > + recipes = "" > > > > + > > > > if args.recipename: > > > > if args.all: > > > > raise DevtoolError("Recipe cannot be specified if > > > > -a/--all is used") @@ -1957,7 +1966,7 @@ def reset(args, config, > > basepath, > > > workspace): > > > > else: > > > > recipes = args.recipename > > > > > > > > - _reset(recipes, args.no_clean, config, basepath, workspace) > > > > + _reset(recipes, args.no_clean, args.remove_work, config, > > > > + basepath, workspace) > > > > > > > > return 0 > > > > > > > > @@ -2009,6 +2018,7 @@ def finish(args, config, basepath, > > workspace): > > > > raise DevtoolError('Source tree is not > > > > clean:\n\n%s\nEnsure you have committed your changes or use -f/-- > > force > > > > if you are sure there\'s nothing that needs to be committed' % > > dirty) > > > > > > > > no_clean = args.no_clean > > > > + remove_work=args.remove_work > > > > tinfoil = setup_tinfoil(basepath=basepath, tracking=True) > > > > try: > > > > rd = parse_recipe(config, tinfoil, args.recipename, True) > > @@ > > > > -2160,7 +2170,7 @@ def finish(args, config, basepath, workspace): > > > > if args.dry_run: > > > > logger.info('Resetting recipe (dry-run)') > > > > else: > > > > - _reset([args.recipename], no_clean=no_clean, > > config=config, > > > basepath=basepath, workspace=workspace) > > > > + _reset([args.recipename], no_clean=no_clean, > > > > + remove_work=remove_work, config=config, basepath=basepath, > > > > + workspace=workspace) > > > > > > > > return 0 > > > > > > > > @@ -2272,6 +2282,7 @@ def register_commands(subparsers, context): > > > > parser_reset.add_argument('recipename', nargs='*', > > help='Recipe to > > > reset') > > > > parser_reset.add_argument('--all', '-a', action="store_true", > > help='Reset all > > > recipes (clear workspace)') > > > > parser_reset.add_argument('--no-clean', '-n', > > > > action="store_true", help='Don\'t clean the sysroot to remove > > recipe > > > > output') > > > > + parser_reset.add_argument('--remove-work', '-r', > > > > + action="store_true", help='Clean the sources directory along with > > > > + append') > > > > parser_reset.set_defaults(func=reset) > > > > > > > > parser_finish = subparsers.add_parser('finish', help='Finish > > > > working on a recipe in your workspace', @@ -2282,6 +2293,7 @@ def > > > register_commands(subparsers, context): > > > > parser_finish.add_argument('--mode', '-m', choices=['patch', > > 'srcrev', > > > 'auto'], default='auto', help='Update mode (where %(metavar)s is > > %(choices)s; > > > default is %(default)s)', metavar='MODE') > > > > parser_finish.add_argument('--initial-rev', help='Override > > starting revision > > > for patches') > > > > parser_finish.add_argument('--force', '-f', > > action="store_true", > > > > help='Force continuing even if there are uncommitted changes in the > > > > source tree repository') > > > > + parser_finish.add_argument('--remove-work', '-r', > > > > + action="store_true", help='Clean the sources directory under > > > > + workspace') > > > > parser_finish.add_argument('--no-clean', '-n', > > action="store_true", > > > help='Don\'t clean the sysroot to remove recipe output') > > > > parser_finish.add_argument('--no-overrides', '-O', > > action="store_true", > > > help='Do not handle other override branches (if they exist)') > > > > parser_finish.add_argument('--dry-run', '-N', > > > > action="store_true", help='Dry-run (just report changes instead of > > > > writing them)') > > > > -- > > > > 2.7.4 > > > > > > > > Thanks, > > Chandana > > //Peter > -- > _______________________________________________ > Openembedded-core mailing list > [email protected] > http://lists.openembedded.org/mailman/listinfo/openembedded-core >
-- _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
