36 lines
1.3 KiB
Bash
Executable file
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"
|