From 140744c4701bcac0dd61e11303d008f2ea34fc1b Mon Sep 17 00:00:00 2001 From: Cristiana Voicu Date: Mon, 29 Jul 2013 09:55:06 +0000 Subject: bitbake: hob/bitbake: create a template (a .bb file) from hob through bitbake Modified generateNewImage function from cooker, in order to be used to save a template in Hob. Created a command to ensure that some dirs are created. The templates (recipes) will be saved in {TOPDIR}/recipes/images folder. Called these methods from Hob. [YOCTO #4193] (Bitbake rev: 96ffa00945c7eb09a0132fa47159aef3ef20fb3e) Signed-off-by: Cristiana Voicu Signed-off-by: Richard Purdie --- bitbake/lib/bb/ui/crumbs/builder.py | 10 ++++++++++ bitbake/lib/bb/ui/crumbs/hig/saveimagedialog.py | 2 +- bitbake/lib/bb/ui/crumbs/hobeventhandler.py | 9 ++++++++- bitbake/lib/bb/ui/crumbs/imagedetailspage.py | 2 ++ 4 files changed, 21 insertions(+), 2 deletions(-) (limited to 'bitbake/lib/bb/ui') diff --git a/bitbake/lib/bb/ui/crumbs/builder.py b/bitbake/lib/bb/ui/crumbs/builder.py index 317a2fe16d..0a04c90bc6 100755 --- a/bitbake/lib/bb/ui/crumbs/builder.py +++ b/bitbake/lib/bb/ui/crumbs/builder.py @@ -593,6 +593,16 @@ class Builder(gtk.Window): toolchain_packages, self.configuration.default_task) + def generate_new_image(self, image): + base_image = self.configuration.initial_selected_image + if base_image == self.recipe_model.__custom_image__: + base_image = None + packages = self.package_model.get_selected_packages() + self.handler.generate_new_image(image, base_image, packages) + + def ensure_dir(self, directory): + self.handler.ensure_dir(directory) + def get_parameters_sync(self): return self.handler.get_parameters() diff --git a/bitbake/lib/bb/ui/crumbs/hig/saveimagedialog.py b/bitbake/lib/bb/ui/crumbs/hig/saveimagedialog.py index 3fc389aaa1..b2fa3bd5a9 100644 --- a/bitbake/lib/bb/ui/crumbs/hig/saveimagedialog.py +++ b/bitbake/lib/bb/ui/crumbs/hig/saveimagedialog.py @@ -117,7 +117,7 @@ class SaveImageDialog (CrumbsDialog): text = self.name_entry.get_text() new_text = text.replace("-","") if new_text.islower() and new_text.isalnum(): - print(text) + self.builder.generate_new_image(self.directory+text) self.destroy() else: self.show_invalid_input_error_dialog() diff --git a/bitbake/lib/bb/ui/crumbs/hobeventhandler.py b/bitbake/lib/bb/ui/crumbs/hobeventhandler.py index 294eb5dd1f..34cd3478ed 100644 --- a/bitbake/lib/bb/ui/crumbs/hobeventhandler.py +++ b/bitbake/lib/bb/ui/crumbs/hobeventhandler.py @@ -176,7 +176,7 @@ class HobHandler(gobject.GObject): hobImage = self.runCommand(["matchFile", "hob-image.bb"]) if self.base_image != "Start with an empty image recipe": baseImage = self.runCommand(["matchFile", self.base_image + ".bb"]) - version = self.runCommand(["generateNewImage", hobImage, baseImage, self.package_queue]) + version = self.runCommand(["generateNewImage", hobImage, baseImage, self.package_queue, True]) targets[0] += version self.recipe_model.set_custom_image_version(version) @@ -426,6 +426,13 @@ class HobHandler(gobject.GObject): self.commands_async.append(self.SUB_BUILD_IMAGE) self.run_next_command(self.GENERATE_IMAGE) + def generate_new_image(self, image, base_image, package_queue): + base_image = self.runCommand(["matchFile", self.base_image + ".bb"]) + self.runCommand(["generateNewImage", image, base_image, package_queue, False]) + + def ensure_dir(self, directory): + self.runCommand(["ensureDir", directory]) + def build_succeeded_async(self): self.building = False diff --git a/bitbake/lib/bb/ui/crumbs/imagedetailspage.py b/bitbake/lib/bb/ui/crumbs/imagedetailspage.py index a02ab610c0..f55d43f30d 100755 --- a/bitbake/lib/bb/ui/crumbs/imagedetailspage.py +++ b/bitbake/lib/bb/ui/crumbs/imagedetailspage.py @@ -624,6 +624,8 @@ class ImageDetailsPage (HobPage): def save_button_clicked_cb(self, button): topdir = self.builder.get_topdir() images_dir = topdir + "/recipes/images/" + self.builder.ensure_dir(images_dir) + dialog = SaveImageDialog(images_dir, "Save image recipe", self.builder, gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT) response = dialog.run() -- cgit v1.2.3-54-g00ecf