summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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)