feat: integrate message to worker
This commit is contained in:
33
bopytex/message.py
Normal file
33
bopytex/message.py
Normal 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
|
@@ -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)
|
||||
|
||||
|
@@ -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:
|
||||
|
@@ -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)
|
||||
|
||||
|
Reference in New Issue
Block a user