diff options
author | 2022-01-21 21:55:19 +0000 | |
---|---|---|
committer | 2022-01-21 21:55:19 +0000 | |
commit | 721d313e9170661bd969fe8e737866b2560dae4a (patch) | |
tree | 44aa19b25573ada3bf2ef3cf16c9c279d7b05603 /manage.py | |
parent | Implement voice mute + migration from voice mute -> voice ban (diff) | |
parent | Merge pull request #640 from Krish-bhardwaj/main (diff) |
Merge branch 'main' into voicemute
Diffstat (limited to 'manage.py')
-rwxr-xr-x | manage.py | 33 |
1 files changed, 33 insertions, 0 deletions
@@ -1,6 +1,8 @@ #!/usr/bin/env python import os +import platform import sys +from pathlib import Path import django from django.contrib.auth import get_user_model @@ -147,6 +149,22 @@ class SiteManager: gunicorn.app.wsgiapp.run() +def clean_up_static_files(build_folder: Path) -> None: + """Recursively loop over the build directory and fix links.""" + for file in build_folder.iterdir(): + if file.is_dir(): + clean_up_static_files(file) + elif file.name.endswith(".html"): + # Fix parent host url + new = file.read_text(encoding="utf-8").replace(f"//{os.getenv('PARENT_HOST')}", "") + + # Fix windows paths if on windows + if platform.system() == "Windows": + new = new.replace("%5C", "/") + + file.write_text(new, encoding="utf-8") + + def main() -> None: """Entry point for Django management script.""" # Use the custom site manager for launching the server @@ -155,8 +173,23 @@ def main() -> None: # Pass any others directly to standard management commands else: + _static_build = "distill" in sys.argv[1] + + if _static_build: + # Build a static version of the site with no databases and API support + os.environ["STATIC_BUILD"] = "True" + if not os.getenv("PARENT_HOST"): + os.environ["PARENT_HOST"] = "REPLACE_THIS.HOST" + execute_from_command_line(sys.argv) + if _static_build: + # Clean up parent host in generated files + for arg in sys.argv[2:]: + if not arg.startswith("-"): + clean_up_static_files(Path(arg)) + break + if __name__ == '__main__': main() |