28 lines
1.1 KiB
Python
28 lines
1.1 KiB
Python
import subprocess
|
|
import os
|
|
import shutil
|
|
from banking_breakdown import types
|
|
|
|
|
|
def build_document(report_data: types.ReportData):
|
|
# Copy files from 'res/' folder
|
|
os.makedirs(os.path.dirname("build/report.tex"), exist_ok=True)
|
|
shutil.copyfile("res/report.tex", "build/report.tex")
|
|
shutil.copyfile("res/.latexmkrc", "build/.latexmkrc")
|
|
|
|
# Write data as csv files
|
|
report_data.net_income.to_csv('build/net_income.csv', index=False)
|
|
report_data.category_overview.to_csv('build/category_overview.csv',
|
|
index=False)
|
|
report_data.total_value.to_csv('build/total_value.csv', index=False)
|
|
|
|
# Build dockerfile and compile document
|
|
subprocess.call("docker build . -f res/Dockerfile.alpine"
|
|
" -t banking-breakdown",
|
|
shell=True)
|
|
subprocess.call("docker run --rm -u `id -u`:`id -g`"
|
|
" -v $(realpath .):/project"
|
|
" -w /project/build banking-breakdown"
|
|
" latexmk -pdf report.tex",
|
|
shell=True)
|