42 lines
1.0 KiB
Bash
Executable File
42 lines
1.0 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
|
|
if [ ! -d "${candidate}/ptlinux" ]
|
|
then
|
|
continue
|
|
fi
|
|
if "$python_bin" -I -B -c \
|
|
'import sys; sys.path.insert(0, sys.argv[1]); import ptlinux, ptlinux.cli' \
|
|
"${candidate}" >/dev/null 2>&1
|
|
then
|
|
release_root="${candidate}"
|
|
break
|
|
fi
|
|
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 "$@"
|