diff options
author | Pedro Alvarez <pedro.alvarez@codethink.co.uk> | 2019-07-12 11:35:37 +0100 |
---|---|---|
committer | Pedro Alvarez <pedro.alvarez@codethink.co.uk> | 2019-07-12 11:49:13 +0100 |
commit | 2d54f8036d1f58df9690849f5b82134927561d1e (patch) | |
tree | 03eb993537af85421cb2eb174967268e0fb8c31e | |
parent | 721cef29357d960ab3a670f37bc45f0df6f853a3 (diff) | |
download | lorry-controller-2d54f8036d1f58df9690849f5b82134927561d1e.tar.gz |
Make status call copy the static files
-rw-r--r-- | lorrycontroller/status.py | 18 |
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) |