70 lines
1.5 KiB
Bash
70 lines
1.5 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
CONFIG_DIR="${CONFIG_DIR:-/config}"
|
|
PORT="${PORT:-8080}"
|
|
ASTER_DEVICE="${ASTER_DEVICE:-}"
|
|
ASTER_USB="${ASTER_USB:-}"
|
|
ASTER_SIMULATE="${ASTER_SIMULATE:-0}"
|
|
ASTER_WRITE_ONLY="${ASTER_WRITE_ONLY:-0}"
|
|
ASTER_DISABLE_DISPLAY="${ASTER_DISABLE_DISPLAY:-0}"
|
|
|
|
mkdir -p "${CONFIG_DIR}" "${CONFIG_DIR}/img"
|
|
|
|
ARGS=(
|
|
"--config-dir" "${CONFIG_DIR}"
|
|
"--bind" "0.0.0.0:${PORT}"
|
|
)
|
|
|
|
if [[ -n "${ASTER_DEVICE}" ]]; then
|
|
ARGS+=("--device" "${ASTER_DEVICE}")
|
|
fi
|
|
|
|
if [[ -n "${ASTER_USB}" ]]; then
|
|
ARGS+=("--usb" "${ASTER_USB}")
|
|
fi
|
|
|
|
if [[ "${ASTER_SIMULATE}" == "1" ]]; then
|
|
ARGS+=("--simulate")
|
|
fi
|
|
|
|
if [[ "${ASTER_WRITE_ONLY}" == "1" ]]; then
|
|
ARGS+=("--write-only")
|
|
fi
|
|
|
|
if [[ "${ASTER_DISABLE_DISPLAY}" == "1" ]]; then
|
|
ARGS+=("--disable-display")
|
|
fi
|
|
|
|
echo "Starting aster-webui native container"
|
|
echo "Config directory: ${CONFIG_DIR}"
|
|
echo "WebUI port: ${PORT}"
|
|
echo "Display mode: $(
|
|
if [[ "${ASTER_DISABLE_DISPLAY}" == "1" ]]; then
|
|
printf '%s' 'disabled'
|
|
elif [[ "${ASTER_SIMULATE}" == "1" ]]; then
|
|
printf '%s' 'simulate'
|
|
elif [[ -n "${ASTER_DEVICE}" ]]; then
|
|
printf 'device:%s' "${ASTER_DEVICE}"
|
|
elif [[ -n "${ASTER_USB}" ]]; then
|
|
printf 'usb:%s' "${ASTER_USB}"
|
|
else
|
|
printf '%s' 'default-usb'
|
|
fi
|
|
)"
|
|
|
|
APP_PID=""
|
|
|
|
shutdown() {
|
|
if [[ -n "${APP_PID}" ]] && kill -0 "${APP_PID}" >/dev/null 2>&1; then
|
|
kill -TERM "${APP_PID}" >/dev/null 2>&1 || true
|
|
wait "${APP_PID}" || true
|
|
fi
|
|
}
|
|
|
|
trap shutdown INT TERM
|
|
|
|
/usr/local/bin/aster-webui "${ARGS[@]}" &
|
|
APP_PID="$!"
|
|
wait "${APP_PID}"
|