44 lines
1.4 KiB
Bash
44 lines
1.4 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
container_name=${PRODUCT_VAMP_ZERO_CONTAINER:-product_vamp_zero}
|
|
config_dir=${PRODUCT_VAMP_CONFIG_DIR:-/etc/product_vamp}
|
|
image_tag=${PRODUCT_VAMP_ZERO_IMAGE:-}
|
|
if [ -z "$image_tag" ]; then
|
|
read -r image_tag < "$config_dir/image_id"
|
|
fi
|
|
run_dir=${PRODUCT_VAMP_RUN_DIR:-/run/product_vamp}
|
|
display_tty=${PRODUCT_VAMP_DISPLAY_TTY:-/dev/tty1}
|
|
|
|
install -d -m 0755 "$run_dir"
|
|
|
|
if command -v chvt >/dev/null 2>&1 && [ -c "$display_tty" ]; then
|
|
tty_number=${display_tty#/dev/tty}
|
|
case "$tty_number" in
|
|
''|*[!0-9]*)
|
|
;;
|
|
*)
|
|
chvt "$tty_number" || true
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
if [ -c "$display_tty" ]; then
|
|
if command -v setterm >/dev/null 2>&1; then
|
|
setterm --cursor off > "$display_tty" || printf '\033[?25l' > "$display_tty" || true
|
|
else
|
|
printf '\033[?25l' > "$display_tty" || true
|
|
fi
|
|
fi
|
|
|
|
docker rm -f "$container_name" >/dev/null 2>&1 || true
|
|
|
|
echo "Starting Product Vamp Zero container '$container_name' from '$image_tag' on '$display_tty'"
|
|
|
|
exec docker run --rm --name "$container_name" --network host --privileged \
|
|
--env PRODUCT_VAMP_DISPLAY_TTY="$display_tty" \
|
|
-v "$config_dir:/etc/product_vamp:ro" \
|
|
-v "$run_dir:/run/product_vamp" \
|
|
"$image_tag" \
|
|
sh -lc 'display_tty=${PRODUCT_VAMP_DISPLAY_TTY:-/dev/tty1}; exec setsid --wait --ctty /usr/bin/vamp_zero --config /etc/product_vamp/vamp.json < "$display_tty"'
|