Commit e8577d98fa
Unsigned
Layout: unified · split
build.py +11 −6
| @@ -5,11 +5,13 @@ import subprocess | ||
| 5 | 5 | import sys |
| 6 | 6 | from pathlib import Path |
| 7 | 7 | |
| 8 | ||
| 8 | 9 | def prompt(prompt_text): |
| 9 | 10 | try: |
| 10 | 11 | return input(prompt_text).strip() |
| 11 | 12 | except EOFError: |
| 12 | return '' | |
| 13 | return "" | |
| 14 | ||
| 13 | 15 | |
| 14 | 16 | def remove_build_directory(build_dir): |
| 15 | 17 | if build_dir.exists(): |
| @@ -17,6 +19,7 @@ def remove_build_directory(build_dir): | ||
| 17 | 19 | shutil.rmtree(build_dir) |
| 18 | 20 | build_dir.mkdir(parents=True, exist_ok=True) |
| 19 | 21 | |
| 22 | ||
| 20 | 23 | def minify_css(src_css, dest_css): |
| 21 | 24 | print(f"Minifying CSS: {src_css} → {dest_css}") |
| 22 | 25 | result = subprocess.run( |
| @@ -30,6 +33,7 @@ def minify_css(src_css, dest_css): | ||
| 30 | 33 | print(result.stderr, file=sys.stderr) |
| 31 | 34 | sys.exit(1) |
| 32 | 35 | |
| 36 | ||
| 33 | 37 | def run_emacs_publish(dev_mode=True): |
| 34 | 38 | if dev_mode: |
| 35 | 39 | print("Running Emacs publish script (development)...") |
| @@ -53,6 +57,7 @@ def run_emacs_publish(dev_mode=True): | ||
| 53 | 57 | print(result.stderr, file=sys.stderr) |
| 54 | 58 | sys.exit(1) |
| 55 | 59 | |
| 60 | ||
| 56 | 61 | def deploy_to_server(build_dir, server): |
| 57 | 62 | remote_path = f"{server}:/var/www/cleberg.net/" |
| 58 | 63 | print(f"Deploying .build/ → {remote_path}") |
| @@ -67,21 +72,20 @@ def deploy_to_server(build_dir, server): | ||
| 67 | 72 | print(result.stderr, file=sys.stderr) |
| 68 | 73 | sys.exit(1) |
| 69 | 74 | |
| 75 | ||
| 70 | 76 | def start_dev_server(build_dir): |
| 71 | 77 | print(f"Starting development HTTP server from {build_dir}/ on port 8000") |
| 72 | 78 | os.chdir(build_dir) |
| 73 | 79 | # This will run until interrupted (Ctrl+C) |
| 74 | 80 | try: |
| 75 | subprocess.run( | |
| 76 | [sys.executable, "-m", "http.server", "8000"], | |
| 77 | check=True | |
| 78 | ) | |
| 81 | subprocess.run([sys.executable, "-m", "http.server", "8000"], check=True) | |
| 79 | 82 | except KeyboardInterrupt: |
| 80 | 83 | print("\nDevelopment server stopped.") |
| 81 | 84 | except subprocess.CalledProcessError as e: |
| 82 | 85 | print(f"Error starting development server: {e}", file=sys.stderr) |
| 83 | 86 | sys.exit(1) |
| 84 | 87 | |
| 88 | ||
| 85 | 89 | def main(): |
| 86 | 90 | build_dir = Path(".build") |
| 87 | 91 | theme_dir = Path("theme/static") |
| @@ -132,5 +136,6 @@ def main(): | ||
| 132 | 136 | # Launch development web server |
| 133 | 137 | start_dev_server(build_dir) |
| 134 | 138 | |
| 139 | ||
| 135 | 140 | if __name__ == "__main__": |
| 136 | main() | |
| \ No newline at end of file | ||
| 141 | main() | |