From 3d31347e9beeaff3a447cee68531bfb6114b7d77 Mon Sep 17 00:00:00 2001 From: Nicolas F Date: Sun, 27 Oct 2019 20:19:07 +0100 Subject: [PATCH] observer: create outputdir if it doesn't exist Observers get initialised at config parse time, before Overviewer creates the outputdir. So we can just tell them to create the outputdir if it doesn't already exist to avoid an awkward error on the initial render. Fixes #1657. --- overviewer_core/observer.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/overviewer_core/observer.py b/overviewer_core/observer.py index 63c5a7a..9db9baf 100644 --- a/overviewer_core/observer.py +++ b/overviewer_core/observer.py @@ -256,11 +256,10 @@ class JSObserver(Observer): raise Exception("JSObserver: messages parameter must be a " "dictionary with three entries: totalTiles, " "renderCompleted and renderProgress") + # On the initial render, the outputdir hasn't been created until after the observer is + # initialised, so let's just do it here if necessary. if not os.path.exists(outputdir): - raise Exception("JSObserver: Output directory specified (%s) " - "doesn't appear to exist. This should be the " - "same as the Overviewer output directory" - % outputdir) + os.mkdir(outputdir) self.logfile = open(os.path.join(outputdir, "progress.json"), "wb+", 0) self.json["message"] = "Render starting..."