From 87ce7bdfd5e2bf1128226ada4dd8f88abbf51230 Mon Sep 17 00:00:00 2001 From: Kang Kai Date: Wed, 6 Jun 2012 17:52:26 +0800 Subject: ui/crumbs/hig.py: check deploy process return value Update function response_cb of DeployImageDialog to get deploy process return value. According the return value tell user that deploy image successfully or not. (Bitbake rev: f78f6d43a68e0f1dc4d3e4164eed453fcb9c22a8) Signed-off-by: Kang Kai Signed-off-by: Richard Purdie --- bitbake/lib/bb/ui/crumbs/hig.py | 32 +++++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-) (limited to 'bitbake') diff --git a/bitbake/lib/bb/ui/crumbs/hig.py b/bitbake/lib/bb/ui/crumbs/hig.py index cf73145442..97a3b22f15 100644 --- a/bitbake/lib/bb/ui/crumbs/hig.py +++ b/bitbake/lib/bb/ui/crumbs/hig.py @@ -827,12 +827,38 @@ class DeployImageDialog (CrumbsDialog): def response_cb(self, dialog, response_id): if response_id == gtk.RESPONSE_YES: + lbl = '' combo_item = self.usb_combo.get_active_text() - if combo_item and combo_item != self.__dummy_usb__: + if combo_item and combo_item != self.__dummy_usb__ and self.image_path: cmdline = bb.ui.crumbs.utils.which_terminal() if cmdline: - cmdline += "\"sudo dd if=" + self.image_path + " of=" + combo_item + "\"" - bb.process.Popen(shlex.split(cmdline)) + tmpname = os.tmpnam() + cmdline += "\"sudo dd if=" + self.image_path + \ + " of=" + combo_item + "; echo $? > " + tmpname + "\"" + deploy_process = bb.process.Popen(shlex.split(cmdline)) + deploy_process.wait() + + # if file tmpname not exists, that means there is something wrong with xterm + # user can get the error message from xterm so no more warning need. + if os.path.exists(tmpname): + tmpfile = open(tmpname) + if int(tmpfile.readline().strip()) == 0: + lbl = "Deploy image successfully" + else: + lbl = "Deploy image failed\nPlease try again." + tmpfile.close() + os.remove(tmpname) + else: + if not self.image_path: + lbl = "No selection made\nYou have not selected an image to deploy" + else: + lbl = "No selection made\nYou have not selected USB device" + if len(lbl): + crumbs_dialog = CrumbsMessageDialog(self, lbl, gtk.STOCK_DIALOG_INFO) + button = crumbs_dialog.add_button("Close", gtk.RESPONSE_OK) + HobButton.style_button(button) + crumbs_dialog.run() + crumbs_dialog.destroy() def update_progress_bar(self, title, fraction, status=None): self.progress_bar.update(fraction) -- cgit v1.2.3-54-g00ecf