feat(entry): implement def main

This commit is contained in:
dev 2026-02-23 13:44:29 +00:00
parent d5fb035807
commit dfbea5b0ac

View file

@ -123,3 +123,39 @@ def validate_x11_environment():
raise RuntimeError( raise RuntimeError(
"Missing X11 runtime environment. Set DISPLAY or use --backend wayland." "Missing X11 runtime environment. Set DISPLAY or use --backend wayland."
) )
# main: function definition for ScanSlicer behavior.
def main(argv=None):
args = parse_args(sys.argv[1:] if argv is None else argv)
runtime_backend = None
try:
runtime_backend = resolve_runtime_backend(args.backend)
configure_qt_backend(runtime_backend)
if runtime_backend == "wayland":
validate_wayland_environment()
elif runtime_backend == "x11":
validate_x11_environment()
from .main import run_app
return run_app(args.path)
except Exception as exc:
selected = os.environ.get("QT_QPA_PLATFORM", "<unset>")
print(
f"Failed to start ScanSlicer Qt UI (backend={runtime_backend or args.backend}, QT_QPA_PLATFORM={selected}).",
file=sys.stderr,
)
print(str(exc), file=sys.stderr)
if runtime_backend == "x11":
print(
"X11 hint: ensure DISPLAY is set and an X server is available.",
file=sys.stderr,
)
else:
print(
"Wayland hint: ensure XDG_RUNTIME_DIR and WAYLAND_DISPLAY are set and the Wayland socket is mounted.",
file=sys.stderr,
)
return 1