aboutsummaryrefslogtreecommitdiff
path: root/resumejson_converter/generators/html.py
diff options
context:
space:
mode:
Diffstat (limited to 'resumejson_converter/generators/html.py')
-rw-r--r--resumejson_converter/generators/html.py28
1 files changed, 16 insertions, 12 deletions
diff --git a/resumejson_converter/generators/html.py b/resumejson_converter/generators/html.py
index 1b34e91..b1d2802 100644
--- a/resumejson_converter/generators/html.py
+++ b/resumejson_converter/generators/html.py
@@ -1,14 +1,14 @@
import os.path as path
-import sys
import codecs
import logging
import jinja2
+from jinja2.exceptions import TemplateSyntaxError
import resumejson_converter.filters as filters
-def generate(resume, template, out_path):
+def generate(resume, template, out_path=None):
"""
Return html version of a JSON resume based on a template.
@@ -32,18 +32,22 @@ def generate(resume, template, out_path):
try:
template = env.get_template(template_name)
except jinja2.exceptions.TemplateNotFound:
- logging.exception("File not found: '{}'!"
- .format(template))
- sys.exit(1)
+ logging.error("File not found: '{}'!"
+ .format(template))
+ raise
html = template.render(dict(resume=resume))
- except jinja2.exceptions.TemplateSyntaxError as e:
- logging.exception("Syntax error in template file '{}' line {}: {}"
- .format(e.name, e.lineno, e.message))
- sys.exit(1)
+ except TemplateSyntaxError as e:
+ logging.error("Syntax error in template file '{}' line {}: {}"
+ .format(e.name, e.lineno, e.message))
+ raise
else:
logging.info("HTML generation done.")
if out_path:
- file = codecs.open(out_path, "w", "utf-8-sig")
- file.write(html)
- file.close
+ try:
+ file = codecs.open(out_path, "w", "utf-8-sig")
+ file.write(html)
+ file.close
+ except IOError:
+ logging.error("Permission error when writing html file!")
+ raise
return html