From c02b72d9ea466e0b1dc221ba4a8b35f17ad593f9 Mon Sep 17 00:00:00 2001
From: Dennis Ahrens <dennis.ahrens@hs-hannover.de>
Date: Wed, 8 Nov 2017 17:31:52 +0100
Subject: [PATCH] This should also work for watchassets, of course...

---
 hshassets/management/commands/watchassets.py | 14 ++++++++++----
 hshassets/utils.py                           |  4 ++--
 2 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/hshassets/management/commands/watchassets.py b/hshassets/management/commands/watchassets.py
index 8ab82aa1..5d745531 100644
--- a/hshassets/management/commands/watchassets.py
+++ b/hshassets/management/commands/watchassets.py
@@ -10,12 +10,16 @@ from watchdog.observers import Observer
 
 class AssetBuildHandler(events.PatternMatchingEventHandler):
 
+    def __init__(self, scss_include_paths, *args, **kwargs):
+        super().__init__(*args, **kwargs)
+        self.scss_include_paths = scss_include_paths
+
     def on_modified(self, event):
         if isinstance(event, events.FileModifiedEvent):
             print('File modified: \033[35m{}\033[0m'.format(event.src_path))
             try:
                 app_name, app_directories = utils.discover_app(event.src_path)
-                utils.build_specific(app_name, app_directories, event.src_path)
+                utils.build_specific(app_name, app_directories, event.src_path, self.scss_include_paths)
             except Exception as e:
                 print('Failed! \033[31m(✖_✖)\033[0m\n')
                 traceback.print_exc()
@@ -47,10 +51,12 @@ class Command(BaseCommand):
 
         observer = Observer()
 
-        build_handler = AssetBuildHandler(patterns=['*.js', '*.sass', '*.scss', '*.css'])
-        image_handler = ImageHandler(patterns=['*'])
+        asset_directories = utils.get_asset_directories()
+        scss_include_paths = utils.get_scss_include_paths(asset_directories)
 
-        for app_name, app_directories in utils.get_asset_directories().items():
+        build_handler = AssetBuildHandler(scss_include_paths, patterns=['*.js', '*.sass', '*.scss', '*.css'])
+        image_handler = ImageHandler(patterns=['*'])
+        for app_name, app_directories in asset_directories.items():
 
             if not os.path.isdir(app_directories['static_path']):
                 os.makedirs(app_directories['static_path'])
diff --git a/hshassets/utils.py b/hshassets/utils.py
index a186301c..3ef9a375 100644
--- a/hshassets/utils.py
+++ b/hshassets/utils.py
@@ -217,8 +217,8 @@ def do_everything(verbose=False):
         copy_fonts(app_name, app_directories, verbose=verbose)
 
 
-def build_specific(app_name, app_directories, file_path):
+def build_specific(app_name, app_directories, file_path, scss_include_paths):
     if file_path.endswith(('.sass', '.scss', '.css')):
-        build_scss(app_name, app_directories)
+        build_scss(app_name, app_directories, scss_include_paths)
     elif file_path.endswith(('.js')):
         build_javascript(app_name, app_directories)
-- 
GitLab