Files
kaizoku/docker-entrypoint.sh
T
2026-08-10 11:15:22 +02:00

56 lines
1.2 KiB
Bash

#!/bin/sh
set -eu
is_integer() {
case "${1:-}" in
'' | *[!0-9]*) return 1 ;;
*) return 0 ;;
esac
}
chown_path() {
owner="$1"
path="$2"
if ! chown "$owner" "$path"; then
echo "Warning: could not change ownership of $path to $owner; continuing." >&2
fi
}
run_as_requested_user() {
uid="${USER_UID:-}"
gid="${USER_GID:-}"
if [ -z "$uid" ] && [ -z "$gid" ]; then
return 1
fi
if [ -z "$uid" ] || [ -z "$gid" ]; then
echo "Both USER_UID and USER_GID must be set together." >&2
exit 1
fi
if ! is_integer "$uid" || ! is_integer "$gid"; then
echo "USER_UID and USER_GID must be numeric." >&2
exit 1
fi
mkdir -p /app/.kaizoku/home
for path in /downloads /jellyfin/tv /jellyfin/movies /app/.kaizoku /app/.kaizoku/home; do
chown_path "$uid:$gid" "$path"
done
cd /app
exec setpriv \
--reuid "$uid" \
--regid "$gid" \
--clear-groups \
env HOME=/app/.kaizoku/home python3 /app/app.py "$@"
}
mkdir -p /downloads /jellyfin/tv /jellyfin/movies /app/.kaizoku
run_as_requested_user "$@" || true
cd /app
exec python3 /app/app.py "$@"