koopa-admin-log/configs/notes/entrypoint.sh
2026-09-09 00:52:54 +02:00

36 lines
1.3 KiB
Bash
Executable file

#!/bin/bash
# SilverBullet entrypoint (CachyOS/Arch user tools).
# Adapted from upstream docker-entrypoint.sh (busybox → shadow useradd).
set -euo pipefail
if [[ -f /space/CONTAINER_BOOT.md ]]; then
echo "Executing CONTAINER_BOOT.md script"
bash /space/CONTAINER_BOOT.md &
fi
SB_FOLDER="${SB_FOLDER:-/space}"
if [[ -z "${PUID:-}" && "$(id -u)" == "0" ]]; then
PUID=$(stat -c "%u" "$SB_FOLDER")
echo "Will run SilverBullet with UID $PUID (from owner of $SB_FOLDER)"
fi
if [[ -z "${PGID:-}" ]]; then
PGID=$(stat -c "%g" "$SB_FOLDER")
fi
if [[ "${PUID:-0}" == "0" || "$(id -u)" != "0" ]]; then
exec /silverbullet "$@"
fi
echo "Creating silverbullet user UID=$PUID GID=$PGID"
getent group silverbullet >/dev/null 2>&1 || groupadd -g "$PGID" silverbullet || groupadd -o -g "$PGID" silverbullet
getent passwd silverbullet >/dev/null 2>&1 || useradd -M -N -g silverbullet -u "$PUID" -d "$SB_FOLDER" -s /bin/bash silverbullet \
|| useradd -o -M -N -g silverbullet -u "$PUID" -d "$SB_FOLDER" -s /bin/bash silverbullet
echo "Running SilverBullet as PUID=$PUID PGID=$PGID"
# quote-safe: pass args via "$@" under su -c is awkward; use runuser when present
if command -v runuser >/dev/null 2>&1; then
exec runuser -u silverbullet -- /silverbullet "$@"
fi
args=$(printf '%q ' "$@")
exec su silverbullet -s /bin/bash -c "/silverbullet $args"