abraunegg-onedrive/contrib/docker/entrypoint.sh
Jon Mills 230be5a23d Docker - Make --verbose optional based on environment variable (#651)
* Add environment variables section into relevant document
* Update entrypoint.sh to support --verbose via environment variable
2019-09-09 13:44:07 +10:00

44 lines
1.2 KiB
Bash
Executable file

#!/bin/bash -eu
set +H -xeuo pipefail
: ${ONEDRIVE_UID:=$(stat /onedrive/data -c '%u')}
: ${ONEDRIVE_GID:=$(stat /onedrive/data -c '%g')}
# Create new group using target GID
if ! odgroup="$(getent group $ONEDRIVE_GID)"; then
odgroup='onedrive'
groupadd "${odgroup}" -g $ONEDRIVE_GID
else
odgroup=${odgroup%%:*}
fi
# Create new user using target UID
if ! oduser="$(getent passwd $ONEDRIVE_UID)"; then
oduser='onedrive'
useradd -m "${oduser}" -u $ONEDRIVE_UID -g $ONEDRIVE_GID
else
oduser="${oduser%%:*}"
usermod -g "${odgroup}" "${oduser}"
grep -qv root <( groups "${oduser}" ) || { echo 'ROOT level priviledges prohibited!'; exit 1; }
fi
chown "${oduser}:${odgroup}" /onedrive/ /onedrive/conf
# Default parameters
ARGS=(--monitor --confdir /onedrive/conf --syncdir /onedrive/data)
#Make Verbose output optional, based on an environment variable
# default behaviour is verbose (to continue to behave as before)
if ! [ "${ONEDRIVE_VERBOSE:=1}" == "0" ]; then
echo "# We are being verbose"
echo "# set ONEDRIVE_VERBOSE environment to 0 (Zero) to be less chatty"
ARGS=(--verbose ${ARGS[@]})
fi
if [ ${#} -gt 0 ]; then
ARGS=("${@}")
fi
exec gosu "${oduser}" /usr/local/bin/onedrive "${ARGS[@]}"