| import os |
| import socket |
| import subprocess |
| import time |
| import requests |
| import sys |
| import json |
|
|
| now_dir = os.getcwd() |
| sys.path.append(now_dir) |
| config_file = os.path.join(now_dir, "assets", "config.json") |
| env_path = os.path.join(now_dir, "env", "python.exe") |
|
|
| host = "localhost" |
| port = 8000 |
|
|
| sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) |
| sock.settimeout(2) |
|
|
|
|
| def start_flask(): |
| try: |
| sock.connect((host, port)) |
| print( |
| f"Something is listening on port {port}; Probably the Flask server is already running." |
| ) |
| print("Trying to start it anyway") |
| sock.close() |
| requests.post("http://localhost:8000/shutdown") |
| time.sleep(3) |
| script_path = os.path.join(now_dir, "assets", "flask", "routes.py") |
| try: |
| subprocess.Popen( |
| [env_path, script_path], creationflags=subprocess.CREATE_NEW_CONSOLE |
| ) |
| except Exception as e: |
| print(f"Failed to start the Flask server") |
| print(e) |
| except Exception as e: |
| sock.close() |
| script_path = os.path.join(now_dir, "assets", "flask", "routes.py") |
| try: |
| subprocess.Popen( |
| [env_path, script_path], creationflags=subprocess.CREATE_NEW_CONSOLE |
| ) |
| except Exception as e: |
| print("Failed to start the Flask server") |
| print(e) |
|
|
|
|
| def load_config_flask(): |
| with open(config_file, "r") as file: |
| config = json.load(file) |
| return config["flask_server"] |
|
|
|
|
| def save_config(value): |
| with open(config_file, "r", encoding="utf8") as file: |
| config = json.load(file) |
| config["flask_server"] = value |
| with open(config_file, "w", encoding="utf8") as file: |
| json.dump(config, file, indent=2) |
|
|