feat: 支持 Linux 客户端配置与发布校验
This commit is contained in:
@@ -7,9 +7,30 @@ from fastapi import HTTPException
|
||||
|
||||
PUBLIC_API_BASE_URL = os.getenv("PUBLIC_API_BASE_URL", "").strip().rstrip("/")
|
||||
VALID_CLIENT_TOKEN = os.getenv("CLIENT_API_TOKEN")
|
||||
RELEASE_MAIN_EXECUTABLE = os.getenv("RELEASE_MAIN_EXECUTABLE", "MainApp.exe").strip().replace(chr(92), "/").strip("/")
|
||||
TARGET_PLATFORM = os.getenv("TARGET_PLATFORM", "windows")
|
||||
TARGET_ARCH = os.getenv("TARGET_ARCH", "x64")
|
||||
TARGET_PLATFORM = os.getenv("TARGET_PLATFORM", "windows").strip().lower() or "windows"
|
||||
TARGET_ARCH = os.getenv("TARGET_ARCH", "x64").strip() or "x64"
|
||||
|
||||
|
||||
def platform_executable_path(value: str, fallback_base_name: str) -> str:
|
||||
path = str(value or "").strip().replace(chr(92), "/").strip("/")
|
||||
if not path:
|
||||
path = fallback_base_name
|
||||
parts = path.split("/")
|
||||
leaf = parts[-1]
|
||||
if TARGET_PLATFORM == "windows":
|
||||
if "." not in leaf:
|
||||
leaf += ".exe"
|
||||
elif TARGET_PLATFORM == "linux":
|
||||
if leaf.casefold().endswith(".exe"):
|
||||
leaf = leaf[:-4]
|
||||
parts[-1] = leaf
|
||||
return "/".join(parts)
|
||||
|
||||
|
||||
RELEASE_MAIN_EXECUTABLE = platform_executable_path(
|
||||
os.getenv("RELEASE_MAIN_EXECUTABLE", ""),
|
||||
"bin/SimCAE",
|
||||
)
|
||||
PUBLISH_MAX_REQUEST_BYTES = int(os.getenv("PUBLISH_MAX_REQUEST_MB", "4096")) * 1024 * 1024
|
||||
PUBLISH_MAX_FILES = int(os.getenv("PUBLISH_MAX_FILES", "20000"))
|
||||
PUBLISH_MAX_FIELDS = int(os.getenv("PUBLISH_MAX_FIELDS", str(PUBLISH_MAX_FILES + 100)))
|
||||
@@ -31,7 +52,7 @@ def default_client_main_executable() -> str:
|
||||
path = RELEASE_MAIN_EXECUTABLE.strip().replace(chr(92), "/").strip("/")
|
||||
if path.casefold().startswith("bin/"):
|
||||
path = path[4:]
|
||||
return path or "SimCAE.exe"
|
||||
return platform_executable_path(path, "SimCAE")
|
||||
|
||||
|
||||
def default_client_config_values(request: Request) -> dict:
|
||||
@@ -42,10 +63,13 @@ def default_client_config_values(request: Request) -> dict:
|
||||
"request_timeout_ms": os.getenv("CLIENT_REQUEST_TIMEOUT_MS", "5000"),
|
||||
"temp_folder": os.getenv("CLIENT_TEMP_FOLDER", "update_temp"),
|
||||
"install_root": os.getenv("CLIENT_INSTALL_ROOT", ".."),
|
||||
"main_executable": os.getenv("CLIENT_MAIN_EXECUTABLE", default_client_main_executable()),
|
||||
"launcher_executable": os.getenv("CLIENT_LAUNCHER_EXECUTABLE", "Launcher.exe"),
|
||||
"updater_executable": os.getenv("CLIENT_UPDATER_EXECUTABLE", "Updater.exe"),
|
||||
"bootstrap_executable": os.getenv("CLIENT_BOOTSTRAP_EXECUTABLE", "Bootstrap.exe"),
|
||||
"main_executable": platform_executable_path(
|
||||
os.getenv("CLIENT_MAIN_EXECUTABLE", ""),
|
||||
default_client_main_executable(),
|
||||
),
|
||||
"launcher_executable": platform_executable_path(os.getenv("CLIENT_LAUNCHER_EXECUTABLE", ""), "Launcher"),
|
||||
"updater_executable": platform_executable_path(os.getenv("CLIENT_UPDATER_EXECUTABLE", ""), "Updater"),
|
||||
"bootstrap_executable": platform_executable_path(os.getenv("CLIENT_BOOTSTRAP_EXECUTABLE", ""), "Bootstrap"),
|
||||
"health_check_timeout_ms": os.getenv("CLIENT_HEALTH_CHECK_TIMEOUT_MS", "15000"),
|
||||
"platform": TARGET_PLATFORM,
|
||||
"arch": TARGET_ARCH,
|
||||
|
||||
Reference in New Issue
Block a user