summaryrefslogtreecommitdiff
path: root/src/hatch_django_collectstatic/plugin.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/hatch_django_collectstatic/plugin.py')
-rw-r--r--src/hatch_django_collectstatic/plugin.py29
1 files changed, 8 insertions, 21 deletions
diff --git a/src/hatch_django_collectstatic/plugin.py b/src/hatch_django_collectstatic/plugin.py
index ec3c4dd..f8bf759 100644
--- a/src/hatch_django_collectstatic/plugin.py
+++ b/src/hatch_django_collectstatic/plugin.py
@@ -1,7 +1,9 @@
-import importlib
+import os
import sys
from pathlib import Path
+import django.core.management
+
from django import setup
from django.contrib.staticfiles.management.commands.collectstatic import Command
from hatchling.builders.hooks.plugin.interface import BuildHookInterface
@@ -11,25 +13,10 @@ class DjangoCollectstaticBuildHook(BuildHookInterface):
PLUGIN_NAME = "django-collectstatic"
def initialize(self, version, build_data):
- from django.conf import settings
-
- sys.path.insert(0, str(Path(self.root) / "src"))
- project_settings = importlib.import_module(self.config["settings"])
-
- settings.configure(
- INSTALLED_APPS=project_settings.INSTALLED_APPS,
- STATIC_ROOT=self.config.get("output-directory", "static"),
- STATIC_URL=project_settings.STATIC_URL,
+ sys.path.extend(
+ str(Path(package).parent)
+ for package in self.build_config.default_packages()
)
+ os.environ["DJANGO_SETTINGS_MODULE"] = self.config["settings"]
setup()
- collectstatic_command = Command()
- collectstatic_command.handle(
- interactive=False,
- verbosity=1,
- link=False,
- clear=False,
- dry_run=False,
- ignore_patterns=[],
- use_default_ignore_patterns=True,
- post_process=True,
- )
+ django.core.management.call_command(Command())