diff --git a/hshassets/management/commands/watchassets.py b/hshassets/management/commands/watchassets.py index 8ab82aa1d41c024e91e43b3e34981bc1c5936cc7..5d745531b37506c572953d4f642314457e9838a8 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 a186301c05c47655ad9549ac06dbad73e0be5027..3ef9a375ad4fd753322199f5d70adc4450e715cd 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)