mirror of https://github.com/eyhc1/rendercv.git
check if the executable exists before running TinyTeX
This commit is contained in:
parent
06cf9d1198
commit
5d7b473c9b
|
@ -355,15 +355,15 @@ def run_latex(latex_file_path):
|
||||||
"""
|
"""
|
||||||
start_time = time.time()
|
start_time = time.time()
|
||||||
logger.info("Running TinyTeX to generate the PDF has started.")
|
logger.info("Running TinyTeX to generate the PDF has started.")
|
||||||
latex_file = os.path.basename(latex_file_path)
|
latex_file_name = os.path.basename(latex_file_path)
|
||||||
latex_file_path = os.path.normpath(latex_file_path)
|
latex_file_path = os.path.normpath(latex_file_path)
|
||||||
|
|
||||||
# check if the file exists:
|
# check if the file exists:
|
||||||
if not os.path.exists(latex_file_path):
|
if not os.path.exists(latex_file_path):
|
||||||
raise FileNotFoundError(f"The file {latex_file_path} doesn't exist!")
|
raise FileNotFoundError(f"The file {latex_file_path} doesn't exist!")
|
||||||
|
|
||||||
output_file = latex_file.replace(".tex", ".pdf")
|
output_file_name = latex_file_name.replace(".tex", ".pdf")
|
||||||
output_file_path = os.path.join(os.path.dirname(latex_file_path), output_file)
|
output_file_path = os.path.join(os.path.dirname(latex_file_path), output_file_name)
|
||||||
|
|
||||||
# remove all files except the .tex file
|
# remove all files except the .tex file
|
||||||
for file in os.listdir(os.path.dirname(latex_file_path)):
|
for file in os.listdir(os.path.dirname(latex_file_path)):
|
||||||
|
@ -392,19 +392,30 @@ def run_latex(latex_file_path):
|
||||||
)
|
)
|
||||||
executable = os.path.join(tinytex_path, "lualatex")
|
executable = os.path.join(tinytex_path, "lualatex")
|
||||||
|
|
||||||
|
# Check if the executable exists:
|
||||||
|
if not os.path.exists(executable):
|
||||||
|
raise FileNotFoundError(
|
||||||
|
f"The TinyTeX executable ({executable}) doesn't exist! Please install"
|
||||||
|
" RenderCV again."
|
||||||
|
)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
subprocess.run(
|
subprocess.run(
|
||||||
[
|
[
|
||||||
executable,
|
executable,
|
||||||
f"{latex_file}",
|
f"{latex_file_name}",
|
||||||
],
|
],
|
||||||
cwd=os.path.dirname(latex_file_path),
|
cwd=os.path.dirname(latex_file_path),
|
||||||
check=True,
|
check=True,
|
||||||
# stdout=subprocess.DEVNULL, # suppress latexmk output
|
stdout=subprocess.DEVNULL, # suppress latexmk output
|
||||||
)
|
)
|
||||||
except subprocess.CalledProcessError as e:
|
except subprocess.CalledProcessError as e:
|
||||||
|
log_file_name = latex_file_name.replace(".tex", ".log")
|
||||||
|
log_file_path = os.path.join(os.path.dirname(latex_file_path), log_file_name)
|
||||||
raise RuntimeError(
|
raise RuntimeError(
|
||||||
f"Running TinyTeX has failed with the following error:\n{e.stderr}"
|
f"Running TinyTeX has failed. Check the log file ({log_file_path}) for"
|
||||||
|
" details. If you can't find the problem, please try to re-install"
|
||||||
|
" RenderCV, or open an issue on GitHub."
|
||||||
)
|
)
|
||||||
|
|
||||||
# remove the unnecessary files:
|
# remove the unnecessary files:
|
||||||
|
|
Loading…
Reference in New Issue