diff options
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/lib/devtool/build-image.py | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/scripts/lib/devtool/build-image.py b/scripts/lib/devtool/build-image.py index 5759bece04..a6c7d81586 100644 --- a/scripts/lib/devtool/build-image.py +++ b/scripts/lib/devtool/build-image.py | |||
@@ -21,7 +21,7 @@ import os | |||
21 | import logging | 21 | import logging |
22 | 22 | ||
23 | from bb.process import ExecutionError | 23 | from bb.process import ExecutionError |
24 | from devtool import exec_build_env_command, setup_tinfoil, parse_recipe | 24 | from devtool import exec_build_env_command, setup_tinfoil, parse_recipe, DevtoolError |
25 | 25 | ||
26 | logger = logging.getLogger('devtool') | 26 | logger = logging.getLogger('devtool') |
27 | 27 | ||
@@ -40,7 +40,17 @@ def _get_packages(tinfoil, workspace, config): | |||
40 | 40 | ||
41 | def build_image(args, config, basepath, workspace): | 41 | def build_image(args, config, basepath, workspace): |
42 | """Entry point for the devtool 'build-image' subcommand.""" | 42 | """Entry point for the devtool 'build-image' subcommand.""" |
43 | image = args.recipe | 43 | |
44 | image = args.imagename | ||
45 | auto_image = False | ||
46 | if not image: | ||
47 | sdk_targets = config.get('SDK', 'sdk_targets', '').split() | ||
48 | if sdk_targets: | ||
49 | image = sdk_targets[0] | ||
50 | auto_image = True | ||
51 | if not image: | ||
52 | raise DevtoolError('Unable to determine image to build, please specify one') | ||
53 | |||
44 | appendfile = os.path.join(config.workspace_path, 'appends', | 54 | appendfile = os.path.join(config.workspace_path, 'appends', |
45 | '%s.bbappend' % image) | 55 | '%s.bbappend' % image) |
46 | 56 | ||
@@ -50,6 +60,16 @@ def build_image(args, config, basepath, workspace): | |||
50 | os.unlink(appendfile) | 60 | os.unlink(appendfile) |
51 | 61 | ||
52 | tinfoil = setup_tinfoil() | 62 | tinfoil = setup_tinfoil() |
63 | rd = parse_recipe(config, tinfoil, image, True) | ||
64 | if not rd: | ||
65 | # Error already shown | ||
66 | return 1 | ||
67 | if not bb.data.inherits_class('image', rd): | ||
68 | if auto_image: | ||
69 | raise DevtoolError('Unable to determine image to build, please specify one') | ||
70 | else: | ||
71 | raise DevtoolError('Specified recipe %s is not an image recipe' % image) | ||
72 | |||
53 | if workspace: | 73 | if workspace: |
54 | packages = _get_packages(tinfoil, workspace, config) | 74 | packages = _get_packages(tinfoil, workspace, config) |
55 | if packages: | 75 | if packages: |
@@ -94,5 +114,5 @@ def register_commands(subparsers, context): | |||
94 | help='Build image including workspace recipe packages', | 114 | help='Build image including workspace recipe packages', |
95 | description='Builds an image, extending it to include ' | 115 | description='Builds an image, extending it to include ' |
96 | 'packages from recipes in the workspace') | 116 | 'packages from recipes in the workspace') |
97 | parser.add_argument('recipe', help='Image recipe to build') | 117 | parser.add_argument('imagename', help='Image recipe to build', nargs='?') |
98 | parser.set_defaults(func=build_image) | 118 | parser.set_defaults(func=build_image) |