Files
pristontale-eu-linux/packaging/pristontale-eu
2026-09-01 22:26:19 +02:00

45 lines
1.4 KiB
Bash
Executable File

#!/usr/bin/env sh
set -eu
app_home=@PTLINUX_APP_ROOT@
install_directory=@PTLINUX_INSTALL_DIR@
python_bin="${PTLINUX_PYTHON:-python3}"
export PTLINUX_INSTALL_DIR="${install_directory}"
export PTLINUX_APP_HOME="${app_home}"
release_root=""
for candidate in "${app_home}/current" "${app_home}/previous" "${app_home}"
do
# Installed releases already pass an isolated import self-check before their
# activation link is changed. Keep only a cheap corruption/fallback check on
# every boot instead of starting Python twice and importing the full CLI twice.
if [ ! -r "${candidate}/ptlinux/__init__.py" ] || \
[ ! -r "${candidate}/ptlinux/__main__.py" ] || \
[ ! -r "${candidate}/ptlinux/cli.py" ] || \
[ ! -r "${candidate}/ptdiag/__init__.py" ] || \
[ ! -r "${candidate}/ptdiag/assbin.py" ] || \
[ ! -r "${candidate}/ptdiag/logs.py" ]
then
continue
fi
release_root="${candidate}"
break
done
if [ -z "${release_root}" ]
then
printf '%s\n' "PristonTale EU Linux application files are missing or invalid: ${app_home}" >&2
exit 1
fi
# Never let an unpacked older installer in the caller's current directory
# shadow the selected installed release. Children started by the dashboard
# inherit the same safe-path policy, package root, and no-bytecode policy.
export PYTHONSAFEPATH=1
export PYTHONDONTWRITEBYTECODE=1
export PYTHONPATH="${release_root}"
exec "$python_bin" -B -P -m ptlinux "$@"