diff options
author | Liming An <limingx.l.an@intel.com> | 2012-08-02 19:06:01 +0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2012-08-02 17:05:06 +0100 |
commit | 94e2a104ece703d8fa6046ea0fcf9a51ae1930e3 (patch) | |
tree | 33845eb0bc89d506e8e451a93f720f483a4a8993 /bitbake/lib/bb/ui/crumbs/imagedetailspage.py | |
parent | 5d952ba4a00f14f005706e3c70a98f5f8cf6ab0f (diff) | |
download | poky-94e2a104ece703d8fa6046ea0fcf9a51ae1930e3.tar.gz |
bitbake: Hob: log for Hob and allow users to show logs after successful build
If users build images in Hob, record logs and allow users to retrieve the lo
after successful build.
The logs are generated if and only if:
- users do "just bake"
- users do "build image" after "build packages"
- users do "build packages" only
[YOCTO #1991]
(Bitbake rev: 291289787bb042b99f0599babc2d67c220aadb87)
Signed-off-by: Shane Wang <shane.wang@intel.com>
Signed-off-by: Liming An <limingx.l.an@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/bb/ui/crumbs/imagedetailspage.py')
-rwxr-xr-x | bitbake/lib/bb/ui/crumbs/imagedetailspage.py | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/bitbake/lib/bb/ui/crumbs/imagedetailspage.py b/bitbake/lib/bb/ui/crumbs/imagedetailspage.py index 596fb851ec..40eb7a4540 100755 --- a/bitbake/lib/bb/ui/crumbs/imagedetailspage.py +++ b/bitbake/lib/bb/ui/crumbs/imagedetailspage.py | |||
@@ -33,7 +33,7 @@ from bb.ui.crumbs.hig import CrumbsDialog | |||
33 | class ImageDetailsPage (HobPage): | 33 | class ImageDetailsPage (HobPage): |
34 | 34 | ||
35 | class DetailBox (gtk.EventBox): | 35 | class DetailBox (gtk.EventBox): |
36 | def __init__(self, widget = None, varlist = None, vallist = None, icon = None, button = None, color = HobColors.LIGHT_GRAY): | 36 | def __init__(self, widget = None, varlist = None, vallist = None, icon = None, button = None, button2=None, color = HobColors.LIGHT_GRAY): |
37 | gtk.EventBox.__init__(self) | 37 | gtk.EventBox.__init__(self) |
38 | 38 | ||
39 | # set color | 39 | # set color |
@@ -72,7 +72,11 @@ class ImageDetailsPage (HobPage): | |||
72 | self.table.attach(self.line_widgets[varlist[index]], colid, 20, row, row + 1) | 72 | self.table.attach(self.line_widgets[varlist[index]], colid, 20, row, row + 1) |
73 | # pack the button on the right | 73 | # pack the button on the right |
74 | if button: | 74 | if button: |
75 | self.hbox.pack_end(button, expand=False, fill=False) | 75 | self.bbox = gtk.VBox() |
76 | self.bbox.pack_start(button, expand=True, fill=True) | ||
77 | if button2: | ||
78 | self.bbox.pack_start(button2, expand=True, fill=True) | ||
79 | self.hbox.pack_end(self.bbox, expand=False, fill=False) | ||
76 | 80 | ||
77 | def update_line_widgets(self, variable, value): | 81 | def update_line_widgets(self, variable, value): |
78 | if len(self.line_widgets) == 0: | 82 | if len(self.line_widgets) == 0: |
@@ -164,8 +168,10 @@ class ImageDetailsPage (HobPage): | |||
164 | base_image = self.builder.recipe_model.get_selected_image() | 168 | base_image = self.builder.recipe_model.get_selected_image() |
165 | layers = self.builder.configuration.layers | 169 | layers = self.builder.configuration.layers |
166 | pkg_num = "%s" % len(self.builder.package_model.get_selected_packages()) | 170 | pkg_num = "%s" % len(self.builder.package_model.get_selected_packages()) |
171 | log_file = self.builder.current_logfile | ||
167 | else: | 172 | else: |
168 | pkg_num = "N/A" | 173 | pkg_num = "N/A" |
174 | log_file = None | ||
169 | 175 | ||
170 | # remove | 176 | # remove |
171 | for button_id, button in self.button_ids.items(): | 177 | for button_id, button in self.button_ids.items(): |
@@ -243,11 +249,17 @@ class ImageDetailsPage (HobPage): | |||
243 | view_files_button = HobAltButton("View files") | 249 | view_files_button = HobAltButton("View files") |
244 | view_files_button.connect("clicked", self.view_files_clicked_cb, image_addr) | 250 | view_files_button.connect("clicked", self.view_files_clicked_cb, image_addr) |
245 | view_files_button.set_tooltip_text("Open the directory containing the image files") | 251 | view_files_button.set_tooltip_text("Open the directory containing the image files") |
246 | self.image_detail = self.DetailBox(varlist=varlist, vallist=vallist, button=view_files_button) | 252 | view_log_button = None |
253 | if log_file: | ||
254 | view_log_button = HobAltButton("View log") | ||
255 | view_log_button.connect("clicked", self.view_log_clicked_cb, log_file) | ||
256 | view_log_button.set_tooltip_text("Open the building log files") | ||
257 | self.image_detail = self.DetailBox(varlist=varlist, vallist=vallist, button=view_files_button, button2=view_log_button) | ||
247 | self.box_group_area.pack_start(self.image_detail, expand=False, fill=True) | 258 | self.box_group_area.pack_start(self.image_detail, expand=False, fill=True) |
248 | 259 | ||
249 | # The default kernel box for the qemu images | 260 | # The default kernel box for the qemu images |
250 | self.sel_kernel = "" | 261 | self.sel_kernel = "" |
262 | self.kernel_detail = None | ||
251 | if 'qemu' in image_name: | 263 | if 'qemu' in image_name: |
252 | self.sel_kernel = self.get_kernel_file_name() | 264 | self.sel_kernel = self.get_kernel_file_name() |
253 | 265 | ||
@@ -315,12 +327,16 @@ class ImageDetailsPage (HobPage): | |||
315 | self.box_group_area.pack_start(self.details_bottom_buttons, expand=False, fill=False) | 327 | self.box_group_area.pack_start(self.details_bottom_buttons, expand=False, fill=False) |
316 | 328 | ||
317 | self.show_all() | 329 | self.show_all() |
318 | if not is_runnable: | 330 | if self.kernel_detail and (not is_runnable): |
319 | self.kernel_detail.hide() | 331 | self.kernel_detail.hide() |
320 | 332 | ||
321 | def view_files_clicked_cb(self, button, image_addr): | 333 | def view_files_clicked_cb(self, button, image_addr): |
322 | subprocess.call("xdg-open /%s" % image_addr, shell=True) | 334 | subprocess.call("xdg-open /%s" % image_addr, shell=True) |
323 | 335 | ||
336 | def view_log_clicked_cb(self, button, log_file): | ||
337 | if log_file: | ||
338 | os.system("xdg-open /%s" % log_file) | ||
339 | |||
324 | def refresh_package_detail_box(self, image_size): | 340 | def refresh_package_detail_box(self, image_size): |
325 | self.package_detail.update_line_widgets("Total image size: ", image_size) | 341 | self.package_detail.update_line_widgets("Total image size: ", image_size) |
326 | 342 | ||