feat: integrate message to worker

This commit is contained in:
2022-04-13 12:26:04 +02:00
parent ca0f498d4e
commit 9c05ef1551
7 changed files with 62 additions and 21 deletions

33
bopytex/message.py Normal file
View File

@@ -0,0 +1,33 @@
class Message():
def __init__(self, status, out, err):
self._status = status
self._out = out
self._err = err
@property
def status(self):
return self._status
@property
def out(self):
return self._out
@property
def err(self):
return self._err
class SubprocessMessage(Message):
def __init__(self, process):
self._process = process
@property
def status(self):
return self._process.wait()
@property
def out(self):
return self._process.stdout
@property
def err(self):
return self._process.stderr

View File

@@ -1,4 +1,5 @@
import subprocess
from ..message import SubprocessMessage
def latexmk(args: dict, deps, output):
@@ -8,5 +9,5 @@ def latexmk(args: dict, deps, output):
stderr=subprocess.PIPE,
universal_newlines=True
)
yield from compile_process.stderr
return SubprocessMessage(compile_process)

View File

@@ -1,12 +1,20 @@
from jinja2.environment import Template
from bopytex.message import Message
def generate(args, deps, output):
env = args["jinja2"]["environment"]
template = env.get_template(deps[0])
with open(output, "w") as out:
out.write(tpl2tex(template, metas=args))
yield f"GENERATE - {deps[0]} to {output}"
try:
with open(output, "w") as out:
out.write(tpl2tex(template, metas=args))
return Message(0, [f"GENERATE - {deps[0]} to {output}"], [])
except Exception as e:
return Message(0, [], [e])
def tpl2tex(template: Template, metas: dict = {}) -> str:

View File

@@ -1,5 +1,7 @@
import subprocess
from bopytex.message import SubprocessMessage
def pdfjam(args: dict, deps, output):
joining_process = subprocess.Popen(
["pdfjam"] + deps + ["-o", output],
@@ -7,11 +9,5 @@ def pdfjam(args: dict, deps, output):
stderr=subprocess.PIPE,
universal_newlines=True,
)
# exit_code is always 66...
exit_code = joining_process.wait()
if exit_code == 0:
yield "pdfjam success"
else:
yield "pdfjam failed"
return SubprocessMessage(joining_process)