From 8bbea2254f4aa47b4376e6ede66db31cfbd49376 Mon Sep 17 00:00:00 2001 From: LongHairedHacker Date: Thu, 17 Nov 2016 13:15:03 +0100 Subject: [PATCH 1/3] Added warning if old files are in rendered_root --- verdandi.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/verdandi.py b/verdandi.py index 37e126d..11af54c 100644 --- a/verdandi.py +++ b/verdandi.py @@ -61,6 +61,8 @@ class Verdandi(object): def render(self): if not os.path.exists(self.output_directory): os.mkdir(self.output_directory) + if os.listdir(self.output_directory) != []: + print "[Warn] Ouput directory is not empty" for module in self.modules: module.render(self.output_directory, self.jinja_env) From 0fdaf3917e7d687ea028cf1ea0b51d70c690937a Mon Sep 17 00:00:00 2001 From: LongHairedHacker Date: Thu, 17 Nov 2016 13:57:00 +0100 Subject: [PATCH 2/3] Better error handling and nice return codes --- verdandi.py | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/verdandi.py b/verdandi.py index 11af54c..5e68402 100644 --- a/verdandi.py +++ b/verdandi.py @@ -3,6 +3,7 @@ import os import sys import SocketServer +import traceback from time import sleep from jinja2 import Environment, FileSystemLoader @@ -20,7 +21,7 @@ class DirectoryObserver(FileSystemEventHandler): def on_any_event(self, event): print "File changed: %s" % event.src_path - self._verdandi.generate_output() + self._verdandi.generate_output(False) @@ -68,16 +69,25 @@ class Verdandi(object): def run(self): - self.generate_output() - if len(sys.argv) > 1 and sys.argv[1] == 'serve': + self.generate_output(False) self.serve() + else: + self.generate_output() + sys.exit(0) - def generate_output(self): - self.pass_messages() - self.collect_assets() - self.render() + def generate_output(self, fail_on_exception = True): + try: + self.pass_messages() + self.collect_assets() + self.render() + except Exception: + print "[Error] I have a bad feeling about this ..." + traceback.print_exc() + if fail_on_exception: + sys.exit(1) + def serve(self): @@ -106,3 +116,4 @@ class Verdandi(object): observer.join() print "Be vigilant!" + sys.exit(0) From d76f183cff1ba8cc24148a056aaa88bb84a1684a Mon Sep 17 00:00:00 2001 From: LongHairedHacker Date: Thu, 17 Nov 2016 18:54:15 +0100 Subject: [PATCH 3/3] Moved warning to right place --- verdandi.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/verdandi.py b/verdandi.py index 5e68402..029d750 100644 --- a/verdandi.py +++ b/verdandi.py @@ -55,6 +55,10 @@ class Verdandi(object): def collect_assets(self): + if not os.path.exists(self.output_directory): + os.mkdir(self.output_directory) + if os.listdir(self.output_directory) != []: + print "[Warn] Ouput directory is not empty" for module in self.modules: module.collect_assets(self.output_directory) @@ -62,8 +66,6 @@ class Verdandi(object): def render(self): if not os.path.exists(self.output_directory): os.mkdir(self.output_directory) - if os.listdir(self.output_directory) != []: - print "[Warn] Ouput directory is not empty" for module in self.modules: module.render(self.output_directory, self.jinja_env)