All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 35s
42 lines
1.1 KiB
Bash
42 lines
1.1 KiB
Bash
#!/bin/sh
|
|
|
|
set -eu
|
|
|
|
SCHEDULE="${SCHEDULE:-* * * * *}"
|
|
CRON_LOG_LEVEL="${CRON_LOG_LEVEL:-2}"
|
|
PUID="${PUID:-1000}"
|
|
PGID="${PGID:-1000}"
|
|
CRON_FILE="/etc/crontabs/root"
|
|
|
|
# Create or update group with specified PGID
|
|
if grep -q "^nsupdate:" /etc/group 2>/dev/null; then
|
|
delgroup nsupdate 2>/dev/null || true
|
|
fi
|
|
addgroup -g "${PGID}" nsupdate 2>/dev/null || true
|
|
|
|
# Create or update user with specified PUID
|
|
if grep -q "^nsupdate:" /etc/passwd 2>/dev/null; then
|
|
deluser nsupdate 2>/dev/null || true
|
|
fi
|
|
adduser -u "${PUID}" -G nsupdate -s /sbin/nologin -D nsupdate 2>/dev/null || true
|
|
|
|
# Set ownership of volumes
|
|
chown -R "${PUID}:${PGID}" /config /log
|
|
|
|
# Ensure crontabs directory exists
|
|
mkdir -p "$(dirname "${CRON_FILE}")"
|
|
|
|
# Write cron job to run as the specified user (by UID:GID)
|
|
printf '%s su -s /bin/sh %s:%s -c /usr/local/bin/nsupdate.sh\n' "${SCHEDULE}" "${PUID}" "${PGID}" > "${CRON_FILE}"
|
|
chmod 600 "${CRON_FILE}"
|
|
|
|
if [ "$#" -gt 0 ]; then
|
|
if [ "$1" = "crond" ]; then
|
|
shift
|
|
exec crond -l "${CRON_LOG_LEVEL}" "$@"
|
|
fi
|
|
|
|
exec "$@"
|
|
fi
|
|
|
|
exec crond -l "${CRON_LOG_LEVEL}" -f |