summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPedro Alvarez <pedro.alvarez@codethink.co.uk>2019-07-12 11:35:37 +0100
committerPedro Alvarez <pedro.alvarez@codethink.co.uk>2019-07-12 11:49:13 +0100
commit2d54f8036d1f58df9690849f5b82134927561d1e (patch)
tree03eb993537af85421cb2eb174967268e0fb8c31e
parent721cef29357d960ab3a670f37bc45f0df6f853a3 (diff)
downloadlorry-controller-2d54f8036d1f58df9690849f5b82134927561d1e.tar.gz
Make status call copy the static files
-rw-r--r--lorrycontroller/status.py18
1 files changed, 17 insertions, 1 deletions
diff --git a/lorrycontroller/status.py b/lorrycontroller/status.py
index 9c907bf..9d65c4e 100644
--- a/lorrycontroller/status.py
+++ b/lorrycontroller/status.py
@@ -16,6 +16,7 @@
import logging
import os
+import shutil
import tempfile
import time
@@ -48,7 +49,7 @@ class StatusRenderer(object):
return bottle.template(template, **status)
def write_status_as_html(self, template, status, filename,
- publish_failures):
+ original_static_dir, publish_failures):
modified_status = dict(status)
modified_status['links'] = False
modified_status['publish_failures'] = publish_failures
@@ -63,6 +64,19 @@ class StatusRenderer(object):
with open(temp_filename, 'w') as f:
f.write(html.encode("UTF-8"))
os.rename(temp_filename, filename)
+
+ # Copy static files
+ html_dir = os.path.dirname(filename)
+ static_dir = os.path.join(html_dir, 'lc-static')
+ if not os.path.exists(static_dir):
+ os.makedirs(static_dir)
+
+ static_files = os.listdir(original_static_dir)
+ for file_name in static_files:
+ full_file_name = os.path.join(original_static_dir, file_name)
+ if os.path.isfile(full_file_name):
+ shutil.copy(full_file_name, static_dir)
+
except (OSError, IOError) as e:
self.remove_temp_file(temp_filename)
status['warning_msg'] = (
@@ -171,6 +185,7 @@ class Status(lorrycontroller.LorryControllerRoute):
self._templates['status'],
status,
self.app_settings['status-html'],
+ self.app_settings['static-files'],
self.app_settings['publish-failures'])
return status
@@ -190,6 +205,7 @@ class StatusHTML(lorrycontroller.LorryControllerRoute):
self._templates['status'],
status,
self.app_settings['status-html'],
+ self.app_settings['static-files'],
self.app_settings['publish-failures'])
return renderer.render_status_as_html(
self._templates['status'], status)