|
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) |
|
|