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