2024-12-11 18:59:44 +01:00

42 lines
1.4 KiB
Python

from http.server import HTTPServer, SimpleHTTPRequestHandler
import os
import sys
import argparse
class GodotWebServer(SimpleHTTPRequestHandler):
def end_headers(self):
self.send_header('Cross-Origin-Opener-Policy', 'same-origin')
self.send_header('Cross-Origin-Embedder-Policy', 'require-corp')
super().end_headers()
def run_server(directory='.', port=8000):
os.chdir(directory)
server_address = ('', port)
httpd = HTTPServer(server_address, GodotWebServer)
print(f'Serving directory: {os.path.abspath(directory)}')
print(f'Server running at http://localhost:{port}/')
try:
httpd.serve_forever()
except KeyboardInterrupt:
print('\nShutting down server...')
httpd.server_close()
if __name__ == '__main__':
parser = argparse.ArgumentParser(description='Start a web server for Godot exports')
parser.add_argument('path', nargs='?', default='.',
help='Path to the directory to serve (default: current directory)')
parser.add_argument('--port', '-p', type=int, default=8000,
help='Port to run the server on (default: 8000)')
args = parser.parse_args()
if not os.path.exists(args.path):
print(f"Error: Directory '{args.path}' does not exist")
sys.exit(1)
if not os.path.isdir(args.path):
print(f"Error: '{args.path}' is not a directory")
sys.exit(1)
run_server(args.path, args.port)