forked from mirrors/bookwyrm
32 lines
1.2 KiB
Python
32 lines
1.2 KiB
Python
""" 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))
|