#!/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"