summaryrefslogtreecommitdiffstats
path: root/pkgs/by-name/on/oncall/support_custom_state_dir.patch
blob: f0e181c255d96ba5a447b7341be2166339fdd2a6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
diff --git a/src/oncall/ui/__init__.py b/src/oncall/ui/__init__.py
index a94fb17..364404a 100644
--- a/src/oncall/ui/__init__.py
+++ b/src/oncall/ui/__init__.py
@@ -18,8 +18,12 @@ from webassets.ext.jinja2 import AssetsExtension
 from webassets.script import CommandLineEnvironment
 
 STATIC_ROOT = environ.get('STATIC_ROOT', path.abspath(path.dirname(__file__)))
+SOURCE_ROOT = path.abspath(path.dirname(__file__))
 assets_env = AssetsEnvironment(path.join(STATIC_ROOT, 'static'),
                                url='/static')
+assets_env.cache = False
+assets_env.manifest = False
+assets_env.load_path = [ path.join(SOURCE_ROOT, 'static') ]
 
 assets_env.register('libs', Bundle(
     'js/jquery-3.3.1.min.js', 'js/handlebars-4.0.12.min.js', 'js/bootstrap.min.js',
@@ -45,7 +49,7 @@ logger = logging.getLogger('webassets')
 logger.addHandler(logging.StreamHandler())
 
 jinja2_env = Jinja2Environment(extensions=[AssetsExtension], autoescape=True)
-jinja2_env.loader = FileSystemLoader(path.join(STATIC_ROOT, 'templates'))
+jinja2_env.loader = FileSystemLoader(path.join(SOURCE_ROOT, 'templates'))
 jinja2_env.assets_environment = assets_env
 
 _filename_ascii_strip_re = re.compile(r'[^A-Za-z0-9_.-]')
@@ -113,14 +117,15 @@ def secure_filename(filename):
 class StaticResource(object):
     allow_no_auth = True
 
-    def __init__(self, path):
+    def __init__(self, path, root):
         self.path = path.lstrip('/')
+        self.root = root
 
     def on_get(self, req, resp, filename):
         suffix = path.splitext(req.path)[1]
         resp.content_type = mimes.get(suffix, 'application/octet-stream')
 
-        filepath = path.join(STATIC_ROOT, self.path, secure_filename(filename))
+        filepath = path.join(self.root, self.path, secure_filename(filename))
         try:
             resp.stream = open(filepath, 'rb')
             resp.content_length = path.getsize(filepath)
@@ -153,8 +158,8 @@ def init(application, config):
 
     application.add_sink(index, '/')
     application.add_route('/static/bundles/{filename}',
-                          StaticResource('/static/bundles'))
+                          StaticResource('/static/bundles', STATIC_ROOT))
     application.add_route('/static/images/{filename}',
-                          StaticResource('/static/images'))
+                          StaticResource('/static/images', SOURCE_ROOT))
     application.add_route('/static/fonts/{filename}',
-                          StaticResource('/static/fonts'))
+                          StaticResource('/static/fonts', SOURCE_ROOT))