diff options
author | Ed Bartosh <ed.bartosh@linux.intel.com> | 2015-08-21 16:00:57 +0300 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2015-08-30 12:34:09 +0100 |
commit | fc35c10fed382e385f00b76abcee94a0148b4aee (patch) | |
tree | 883f8c56d17e1e6d66676d398137cc0e0e3229d3 /scripts/lib/devtool | |
parent | b07da7d38bcefe8efdd6b22bb9251bef599ef040 (diff) | |
download | openembedded-core-fc35c10fed382e385f00b76abcee94a0148b4aee.tar.gz openembedded-core-fc35c10fed382e385f00b76abcee94a0148b4aee.tar.bz2 openembedded-core-fc35c10fed382e385f00b76abcee94a0148b4aee.zip |
devtool: implement build-image plugin
Implemented new plugin to build image from workspace packages.
Plugin creates <image>.bbappend file, adds
all workspace packages to the image using IMAGE_INSTALL_append
variable in bbappend file. After that it runs 'bitbake <image>'.
(From OE-Core rev: 00bc43868da3ea2a4532215d3abef8e150c7b2e5)
Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'scripts/lib/devtool')
-rw-r--r-- | scripts/lib/devtool/build-image.py | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/scripts/lib/devtool/build-image.py b/scripts/lib/devtool/build-image.py new file mode 100644 index 0000000000..d8e7b12832 --- /dev/null +++ b/scripts/lib/devtool/build-image.py @@ -0,0 +1,56 @@ +# Development tool - build-image plugin +# +# Copyright (C) 2015 Intel Corporation +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as +# published by the Free Software Foundation. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +"""Devtool plugin containing the build-image subcommand.""" + +import os +import logging + +from bb.process import ExecutionError +from devtool import exec_build_env_command, add_md5 + +LOG = logging.getLogger('devtool') + +def plugin_init(pluginlist): + """Plugin initialization""" + pass + +def build_image(args, config, basepath, workspace): + """Entry point for the devtool 'build-image' subcommand.""" + image = args.recipe + appendfile = os.path.join(config.workspace_path, 'appends', + '%s.bbappend' % image) + with open(appendfile, 'w') as afile: + afile.write('IMAGE_INSTALL_append = " %s"\n' % \ + ' '.join(workspace.keys())) + + add_md5(config, image, appendfile) + + try: + exec_build_env_command(config.init_path, basepath, + 'bitbake %s' % image, watch=True) + except ExecutionError as err: + return err.exitcode + + LOG.info('Successfully built %s', image) + +def register_commands(subparsers, context): + """Register devtool subcommands from the build-image plugin""" + parser_package = subparsers.add_parser('build-image', help='Build image') + parser_package.add_argument('recipe', help='Image recipe to build') + parser_package.set_defaults(func=build_image) + |