Source Code

/ src / blog / management / commands / build_stylesheets.py

from django.core.management.base import BaseCommand
from django.conf import settings

from django.conf import settings
from django.core.management.base import BaseCommand

class Command(BaseCommand):
    help = "Build stylesheets from wireframe and theme css defined in SETTINGS"

    def handle(self, *args, **kwargs):
        input_dir = settings.CSS_INPUT_DIR
        output_dir = settings.CSS_OUTPUT_DIR

        output_dir.mkdir(parents=True, exist_ok=True)

        for name, (wireframe_filename, theme_filename) in settings.CSS_THEMES.items():
            parts = []

            wireframe_path = input_dir / wireframe_filename
            if not wireframe_path.exists():
                raise FileNotFoundError(wireframe_path)

            parts.append(wireframe_path.read_text())

            if theme_filename:
                theme_path = input_dir / theme_filename
                if not theme_path.exists():
                    raise FileNotFoundError(theme_path)
                parts.append(theme_path.read_text())

            output_css = "\n\n".join(parts)
            output_path = output_dir / f"{name}.css"

            output_path.write_text(output_css)

            self.stdout.write(f"Built {output_path}")