import sys import argparse from pathlib import Path from pyserve import PyServeServer, Config def main(): parser = argparse.ArgumentParser(description="PyServe - HTTP веб-сервер") parser.add_argument( "-c", "--config", default="config.yaml", help="Путь к конфигурационному файлу (по умолчанию: config.yaml)" ) parser.add_argument( "--host", help="Хост для привязки сервера" ) parser.add_argument( "--port", type=int, help="Порт для привязки сервера" ) parser.add_argument( "--debug", action="store_true", help="Включить отладочный режим" ) args = parser.parse_args() config_path = args.config if not Path(config_path).exists(): print(f"Конфигурационный файл {config_path} не найден") print("Используется конфигурация по умолчанию") config = Config() else: try: config = Config.from_yaml(config_path) except Exception as e: print(f"Ошибка загрузки конфигурации: {e}") sys.exit(1) if args.host: config.server.host = args.host if args.port: config.server.port = args.port if args.debug: config.logging.level = "DEBUG" server = PyServeServer(config) try: server.run() except KeyboardInterrupt: print("\nСервер остановлен пользователем") except Exception as e: print(f"Ошибка запуска сервера: {e}") sys.exit(1) if __name__ == "__main__": main()