On 01/01/2019 22.18, Sandro Tosi wrote:
> 
> alternatively, we can force bugscript execution in an actual terminal,
> when using GTK, it may not be visually pleasing to see a window pop
> up, but it would be the safest way to gather all the information the
> maintainer wants via bugscripts
> 
> what you think?
> 

Excellent idea. Like this?

diff --git a/bin/reportbug b/bin/reportbug
index f3d1c3e..9407bca 100755
--- a/bin/reportbug
+++ b/bin/reportbug
@@ -2104,7 +2104,7 @@ For more details, please see:
http://www.debian.org/devel/wnpp/''')
             # we get the return code of the script, headers and pseudo- set
             # by the script, and last the text output of the script
             (rc, bugscript_hdrs, bugscript_pseudo, text,
bugscript_attachments) = \
-                utils.exec_and_parse_bugscript(handler, bugexec)
+                utils.exec_and_parse_bugscript(handler, bugexec, ui.system)

             if rc and not notatty:
                 if not ui.yes_no('The package bug script %s exited with
an error status (return '
diff --git a/reportbug/utils.py b/reportbug/utils.py
index 7f90344..621b4b1 100644
--- a/reportbug/utils.py
+++ b/reportbug/utils.py
@@ -1218,13 +1218,13 @@ def get_running_kernel_pkg():
         return None


-def exec_and_parse_bugscript(handler, bugscript):
+def exec_and_parse_bugscript(handler, bugscript, runner):
     """Execute and parse the output of the package bugscript, in particular
     identifying the headers and pseudo-headers blocks, if present"""

     fh, filename = TempFile()
     fh.close()
-    rc = os.system('LC_ALL=C %s %s %s' % (handler, pipes.quote(bugscript),
+    rc = runner('LC_ALL=C %s %s %s' % (handler, pipes.quote(bugscript),
                                           pipes.quote(filename)))

     isheaders = False

Reply via email to