improve process for boxes.py

This commit is contained in:
Mario Voigt 2022-11-30 16:32:35 +01:00
parent 7e149e5d9c
commit 88a5db1d6c

View File

@ -14,6 +14,7 @@ License: GNU GPL v3
""" """
import inkex import inkex
import sys import sys
import subprocess
import os import os
from lxml import etree from lxml import etree
import tempfile import tempfile
@ -53,8 +54,18 @@ class boxesPyWrapper(inkex.GenerateExtension):
cmd = cmd.replace("boxes --generator", "boxes") cmd = cmd.replace("boxes --generator", "boxes")
# run boxes with the parameters provided # run boxes with the parameters provided
with os.popen(cmd, "r") as boxes: #with os.popen(cmd, "r") as boxes:
result = boxes.read() # result = boxes.read()
try:
proc = subprocess.Popen(cmd, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
except OSError as e:
raise OSError("{0}\nCommand failed: errno={1} {2}".format(' '.join(cmd), e.errno, e.strerror))
stdout, stderr = proc.communicate()
if stdout.decode('utf-8') != "":
inkex.utils.debug("stdout: {}".format(stdout.decode('utf-8')))
inkex.utils.debug("stderr: {}".format(stderr.decode('utf-8')))
exit(1)
# check output existence # check output existence
try: try: