changeset 2997:cf0dda0d4cda

jp (blog/edit): fail and show error message if --preview is not working
author Goffi <goffi@goffi.org>
date Fri, 12 Jul 2019 08:55:41 +0200
parents afad95f257c7
children a1b98772af6b
files sat_frontends/jp/cmd_blog.py
diffstat 1 files changed, 21 insertions(+), 17 deletions(-) [+]
line wrap: on
line diff
--- a/sat_frontends/jp/cmd_blog.py	Fri Jul 12 08:55:11 2019 +0200
+++ b/sat_frontends/jp/cmd_blog.py	Fri Jul 12 08:55:41 2019 +0200
@@ -514,23 +514,27 @@
         # do we need a preview ?
         if self.args.preview:
             self.disp(u"Preview requested, launching it", 1)
-            # we redirect outputs to /dev/null to avoid console pollution in editor
-            # if user wants to see messages, (s)he can call "blog preview" directly
-            DEVNULL = open(os.devnull, "wb")
-            subprocess.Popen(
-                [
-                    sys.argv[0],
-                    "blog",
-                    "preview",
-                    "--inotify",
-                    "true",
-                    "-p",
-                    self.profile,
-                    content_file_path,
-                ],
-                stdout=DEVNULL,
-                stderr=subprocess.STDOUT,
-            )
+            # we redirect stderr to stdout and capture output to avoid console pollution
+            # in editor.
+            # If user wants to see messages, (s)he can call "blog preview" directly
+            try:
+                subprocess.check_output(
+                    [
+                        sys.argv[0],
+                        "blog",
+                        "preview",
+                        "--inotify",
+                        "true",
+                        "-p",
+                        self.profile,
+                        content_file_path,
+                    ],
+                    stderr=subprocess.STDOUT,
+                )
+            except Exception as e:
+                self.disp(u"Can't show preview: {msg}".format(
+                    msg=e.output.decode('utf-8'), err=True))
+                sys.exit(e.returncode)
 
         # we launch editor
         self.runEditor(