diff options
Diffstat (limited to 'scripts/lib')
| -rw-r--r-- | scripts/lib/devtool/standard.py | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/scripts/lib/devtool/standard.py b/scripts/lib/devtool/standard.py index 1646971a91..8d9c1a3022 100644 --- a/scripts/lib/devtool/standard.py +++ b/scripts/lib/devtool/standard.py | |||
| @@ -1852,7 +1852,7 @@ def status(args, config, basepath, workspace): | |||
| 1852 | return 0 | 1852 | return 0 |
| 1853 | 1853 | ||
| 1854 | 1854 | ||
| 1855 | def _reset(recipes, no_clean, config, basepath, workspace): | 1855 | def _reset(recipes, no_clean, remove_work, config, basepath, workspace): |
| 1856 | """Reset one or more recipes""" | 1856 | """Reset one or more recipes""" |
| 1857 | import oe.path | 1857 | import oe.path |
| 1858 | 1858 | ||
| @@ -1930,10 +1930,15 @@ def _reset(recipes, no_clean, config, basepath, workspace): | |||
| 1930 | srctreebase = workspace[pn]['srctreebase'] | 1930 | srctreebase = workspace[pn]['srctreebase'] |
| 1931 | if os.path.isdir(srctreebase): | 1931 | if os.path.isdir(srctreebase): |
| 1932 | if os.listdir(srctreebase): | 1932 | if os.listdir(srctreebase): |
| 1933 | # We don't want to risk wiping out any work in progress | 1933 | if remove_work: |
| 1934 | logger.info('Leaving source tree %s as-is; if you no ' | 1934 | logger.info('-r argument used on %s, removing source tree.' |
| 1935 | 'longer need it then please delete it manually' | 1935 | ' You will lose any unsaved work' %pn) |
| 1936 | % srctreebase) | 1936 | shutil.rmtree(srctreebase) |
| 1937 | else: | ||
| 1938 | # We don't want to risk wiping out any work in progress | ||
| 1939 | logger.info('Leaving source tree %s as-is; if you no ' | ||
| 1940 | 'longer need it then please delete it manually' | ||
| 1941 | % srctreebase) | ||
| 1937 | else: | 1942 | else: |
| 1938 | # This is unlikely, but if it's empty we can just remove it | 1943 | # This is unlikely, but if it's empty we can just remove it |
| 1939 | os.rmdir(srctreebase) | 1944 | os.rmdir(srctreebase) |
| @@ -1943,6 +1948,10 @@ def _reset(recipes, no_clean, config, basepath, workspace): | |||
| 1943 | def reset(args, config, basepath, workspace): | 1948 | def reset(args, config, basepath, workspace): |
| 1944 | """Entry point for the devtool 'reset' subcommand""" | 1949 | """Entry point for the devtool 'reset' subcommand""" |
| 1945 | import bb | 1950 | import bb |
| 1951 | import shutil | ||
| 1952 | |||
| 1953 | recipes = "" | ||
| 1954 | |||
| 1946 | if args.recipename: | 1955 | if args.recipename: |
| 1947 | if args.all: | 1956 | if args.all: |
| 1948 | raise DevtoolError("Recipe cannot be specified if -a/--all is used") | 1957 | raise DevtoolError("Recipe cannot be specified if -a/--all is used") |
| @@ -1957,7 +1966,7 @@ def reset(args, config, basepath, workspace): | |||
| 1957 | else: | 1966 | else: |
| 1958 | recipes = args.recipename | 1967 | recipes = args.recipename |
| 1959 | 1968 | ||
| 1960 | _reset(recipes, args.no_clean, config, basepath, workspace) | 1969 | _reset(recipes, args.no_clean, args.remove_work, config, basepath, workspace) |
| 1961 | 1970 | ||
| 1962 | return 0 | 1971 | return 0 |
| 1963 | 1972 | ||
| @@ -2009,6 +2018,7 @@ def finish(args, config, basepath, workspace): | |||
| 2009 | 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) | 2018 | 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) |
| 2010 | 2019 | ||
| 2011 | no_clean = args.no_clean | 2020 | no_clean = args.no_clean |
| 2021 | remove_work=args.remove_work | ||
| 2012 | tinfoil = setup_tinfoil(basepath=basepath, tracking=True) | 2022 | tinfoil = setup_tinfoil(basepath=basepath, tracking=True) |
| 2013 | try: | 2023 | try: |
| 2014 | rd = parse_recipe(config, tinfoil, args.recipename, True, False) | 2024 | rd = parse_recipe(config, tinfoil, args.recipename, True, False) |
| @@ -2160,7 +2170,7 @@ def finish(args, config, basepath, workspace): | |||
| 2160 | if args.dry_run: | 2170 | if args.dry_run: |
| 2161 | logger.info('Resetting recipe (dry-run)') | 2171 | logger.info('Resetting recipe (dry-run)') |
| 2162 | else: | 2172 | else: |
| 2163 | _reset([args.recipename], no_clean=no_clean, config=config, basepath=basepath, workspace=workspace) | 2173 | _reset([args.recipename], no_clean=no_clean, remove_work=remove_work, config=config, basepath=basepath, workspace=workspace) |
| 2164 | 2174 | ||
| 2165 | return 0 | 2175 | return 0 |
| 2166 | 2176 | ||
| @@ -2272,6 +2282,7 @@ def register_commands(subparsers, context): | |||
| 2272 | parser_reset.add_argument('recipename', nargs='*', help='Recipe to reset') | 2282 | parser_reset.add_argument('recipename', nargs='*', help='Recipe to reset') |
| 2273 | parser_reset.add_argument('--all', '-a', action="store_true", help='Reset all recipes (clear workspace)') | 2283 | parser_reset.add_argument('--all', '-a', action="store_true", help='Reset all recipes (clear workspace)') |
| 2274 | parser_reset.add_argument('--no-clean', '-n', action="store_true", help='Don\'t clean the sysroot to remove recipe output') | 2284 | parser_reset.add_argument('--no-clean', '-n', action="store_true", help='Don\'t clean the sysroot to remove recipe output') |
| 2285 | parser_reset.add_argument('--remove-work', '-r', action="store_true", help='Clean the sources directory along with append') | ||
| 2275 | parser_reset.set_defaults(func=reset) | 2286 | parser_reset.set_defaults(func=reset) |
| 2276 | 2287 | ||
| 2277 | parser_finish = subparsers.add_parser('finish', help='Finish working on a recipe in your workspace', | 2288 | parser_finish = subparsers.add_parser('finish', help='Finish working on a recipe in your workspace', |
| @@ -2282,6 +2293,7 @@ def register_commands(subparsers, context): | |||
| 2282 | 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') | 2293 | 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') |
| 2283 | parser_finish.add_argument('--initial-rev', help='Override starting revision for patches') | 2294 | parser_finish.add_argument('--initial-rev', help='Override starting revision for patches') |
| 2284 | parser_finish.add_argument('--force', '-f', action="store_true", help='Force continuing even if there are uncommitted changes in the source tree repository') | 2295 | parser_finish.add_argument('--force', '-f', action="store_true", help='Force continuing even if there are uncommitted changes in the source tree repository') |
| 2296 | parser_finish.add_argument('--remove-work', '-r', action="store_true", help='Clean the sources directory under workspace') | ||
| 2285 | parser_finish.add_argument('--no-clean', '-n', action="store_true", help='Don\'t clean the sysroot to remove recipe output') | 2297 | parser_finish.add_argument('--no-clean', '-n', action="store_true", help='Don\'t clean the sysroot to remove recipe output') |
| 2286 | parser_finish.add_argument('--no-overrides', '-O', action="store_true", help='Do not handle other override branches (if they exist)') | 2298 | parser_finish.add_argument('--no-overrides', '-O', action="store_true", help='Do not handle other override branches (if they exist)') |
| 2287 | parser_finish.add_argument('--dry-run', '-N', action="store_true", help='Dry-run (just report changes instead of writing them)') | 2299 | parser_finish.add_argument('--dry-run', '-N', action="store_true", help='Dry-run (just report changes instead of writing them)') |
