Adds custom compile management command

This commit is contained in:
Mouse Reeve
2022-03-04 12:40:06 -08:00
parent 0751a56474
commit b0c0af9617
4 changed files with 35 additions and 7 deletions

View File

@ -0,0 +1,32 @@
""" Compile themes """
import os
from django.contrib.staticfiles.utils import get_files
from django.contrib.staticfiles.storage import StaticFilesStorage
from django.core.files.base import ContentFile
from django.core.management.base import BaseCommand
import sass
from sass_processor.processor import SassProcessor
# pylint: disable=line-too-long
class Command(BaseCommand):
"""Compile themes"""
help = "Compile theme scss files"
# pylint: disable=no-self-use,unused-argument
def handle(self, *args, **options):
"""compile themes"""
storage = StaticFilesStorage()
theme_files = list(get_files(storage, location="css/themes"))
theme_files = [t for t in theme_files if t[-5:] == '.scss']
for filename in theme_files:
path = storage.path(filename)
content = sass.compile(
filename=path,
include_paths=SassProcessor.include_paths,
)
basename, _ = os.path.splitext(path)
destination_filename = basename + '.css'
print(f"saving f{destination_filename}")
storage.save(destination_filename, ContentFile(content))