summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/ui/crumbs/imagedetailspage.py
diff options
context:
space:
mode:
authorLiming An <limingx.l.an@intel.com>2012-08-02 19:06:01 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-08-02 17:05:06 +0100
commit94e2a104ece703d8fa6046ea0fcf9a51ae1930e3 (patch)
tree33845eb0bc89d506e8e451a93f720f483a4a8993 /bitbake/lib/bb/ui/crumbs/imagedetailspage.py
parent5d952ba4a00f14f005706e3c70a98f5f8cf6ab0f (diff)
downloadpoky-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-xbitbake/lib/bb/ui/crumbs/imagedetailspage.py24
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
33class ImageDetailsPage (HobPage): 33class 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